vissza a tantárgylistához   nyomtatható verzió    

    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
    Kötelező:
    NEM
    (TárgyEredmény( "BMEVIAUMA26", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUMA26", "FELVETEL", AktualisFelev()) > 0)

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    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