Mobile Software System Development

A tantárgy neve magyarul / Name of the subject in Hungarian: Mobilszoftver-rendszerek fejlesztése

Last updated: 2015. november 18.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
MSc degree program in Engineering Information Technology
Mobile Software Development
Course ID Semester Assessment Credit Tantárgyfélév
VIAUMB01 3 2/1/0/v 4  
3. Course coordinator and department Dr. Forstner Bertalan,
4. Instructors

Name:

Title:

Dept.:

Dr. Bertalan Forstner 

Assoc. Professor

Department of Automation and Applied Informatics

Dr. Péter Ekler 

Senior lecturer

Department of Automation and Applied Informatics

5. Required knowledge

Experience in object oriented programming.

Mobile software platforms (BMEVIAUMA05).

6. Pre-requisites
Ajánlott:
Must have: Mobile software platforms (BMEVIAUMA05).
7. Objectives, learning outcomes and obtained knowledge

The purpose of this course is to introduce general terms and methods of application design and development for mobile platforms.

8. Synopsis

 

Lecture topics

1.

Walkthroughs of questions of mobile software specifications. Formal specifications, cross-platform and native parts. Important aspects of decisions of platform choosing.

2.

UI design, screen fragmentation. Differences on phone and tablet. Introduction to platform specific and general UI development. Application mocking. Techniques to build better user experience (UX).

3.

Questions of data storage, location of storages, types and methods of backend storage. Most common mobile ORM solutions.

4.

Communication layers. Design of a protocol. Technologies (XML, JSON, REST), and libraries for them. Push messages. Testing of communication layer, and other techniques, like cache.

5.

Social integration to mobile apps. OAuth. Overview of most popular social sites and their integration.

6.

Introduction of backend as a service, pros-cons, usage. Different service providers and their advantages.

7.

Mobile app development as a group. Challenges, version control, build servers, continuous integration, metrics of code, reports.

8.

Wireless communication. Modern devices and integration (BLE, NFC, Zigbee/Z-Wave). Wearables, smart watches, integration.

9.

Methods of testing of mobile software. TDD, BDD.

10.

Testing of UI, automated UI testing.

11.

Analytics and logging, services and libraries. Crash reporting. UI usage analytics, heatmaps, A/B testing.

12.

Steps of going to stores and publication. Development of beta versions.

13.

Payment and monetization methods in mobile software: paid, ad-supported, freemium, in-app purchase, enterprise. Lifecycle of software and methods of updating. 

14.

Written examination

 

 

Practice topics

1.

Writing specification from informal specification. Designing screenflows.

2.

Specification of data-layer and communication layer for last practice. Synchronization models.

3.

Using Backend-as-a-Service.

4.

Hands-on examples with version control, build servers and continuous integration.

5.

Methods of testing UI.

6.

Adding analytics and crash reporting to the application.

7.

Using A/B testing in the application. Steps to build and publish the application.

 

9. Method of instruction

Lecture and practice

10. Assessment

One written exam in the mid-term, and one final exam.

Succesfull mid-term exam is needed for the final exam.

11. Recaps

Based on Code,  at one time per written examination in the mid-term. 

12. Consultations

Based on individual appointment with the lecturer.

13. References, textbooks and resources
  • Jeff McWherter: Professional Mobile Application Development, 2012.

  • Martin Fowler - Gui Architectures - http://martinfowler.com/eaaDev/uiArchs.html

  • Juhani Lehtimaki: Smashing Android UI, 2012.

  • Jim Webber, Savas Parastatidis, Ian Robinson: REST in Practice: Hypermedia and Systems Architecture, O'Reilly Media, 2010

  • Facebook Developer Site - https://developers.facebook.com/

  • Kris Jamsa: Cloud Computing: SaaS, PaaS, IaaS, Virtualization, Business Models, Mobile, Security and More, 2013.

  • Scott Chaco: Pro Git, http://git-scm.com/book

  • Jon Loeliger, Matthew McCullough: Version Control with Git: Powerful tools and techniques for collaborative software development, O'Reilly Media, 2012

  • Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship, 2008.

  • Jez Humble, David Farley: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, 2010.

  • Graham Lee: Test-Driven iOS Development, Addison-Wesley Professional, 2012

  • Diego Torres Milano: Android Application Testing Guide, 2011

  • Jonathan Kohl: Tap Into Mobile Application Testing

14. Required learning hours and assignment
Lecture42
Mid-term preparation for lectures14
Preparation for mid-term exam20
Homework0
Preparation for the exam44
 
Summary120
15. Syllabus prepared by

Name:

Title:

Dept.:

Dr. Bertalan Forstner 

Assoc. Professor

Department of Automation and Applied Informatics

Dr. Péter Ekler 

Senior lecturer

Department of Automation and Applied Informatics