Purpose of the course is the introduction of moderns techniques and tools for mobile programming, stimulating students to become familiar with programming paradigms and design patterns adopted for the development of mobile applications.
The course deals with key technologies and tools for mobile applications development. The first part of the course will provide an overview of basic principles on which mobile programming relies, namely limited device capabilities, user interaction, the MVC (Model-View-Controller) design pattern, approaches for developing this kind of applications and most popular mobile operating systems (e.g., Android, iOS, Windows 8) and related languages and development frameworks. The core part of the course will be focused on the Android platform: this part will have a programming slant, basic and advanced constructs will be discussed with a lot of practical examples.
In the following, the detailed program is presented.
Basic concepts and fundamentals - Introduction to the mobile ecosystem: mobile device features and non-functional issues for mobile programming (usability, energy comsumption, device heterogeneity, reduced device capabilities). The MVC (Model-View-Controller) design pattern. Mobile Operating Systems (Android, iOS, Windows 8). Introduction to approaches, frameworks and tools for mobile application development. Native applications and Web applications.
The Android platform - Architecture of the platform. Development tools and frameworks. Basic components. Main Android APIs. Concurrent programming. Animations and graphics. Data and storing facilities. Multimedia. Use of sensors. Services.
Basic concepts and fundamentals - Introduction to the mobile ecosystem: mobile device features and non-functional issues for mobile programming (usability, energy comsumption, device heterogeneity, reduced device capabilities). The MVC (Model-View-Controller) design pattern. Mobile Operating Systems (Android, iOS, Windows 8). Introduction to approaches, frameworks and tools for mobile application development. Native applications and Web applications.
The Android platform - Architecture of the platform. Development tools and frameworks. Basic components. Main Android APIs. Concurrent programming. Animations and graphics. Data and storing facilities. Multimedia. Use of sensors. Services.
Slides and exercises (with solutions) developed during lessons and laboratories will be made available for students and constitute an important part of teaching material. Such contents can be easily enriched with materials, tutorials, Web sites available online and whose URLs will be provided during the course. Moreover, the following books are suggested:
- J.F. Di Marzio, "Android: A PRogrammer's Guide", McGraw-Hill
- S. Conder and L. Darcey, "Android wireless application development", Addison-Wesley
- S. Hoober and E. Berkman, "Designing Mobile Interfaces", O'Reilly
- T. Mikkonen, "Programming Mobile Devices: An Introduction for Practitioners", Wiley
The course will adopt a predominantly application-oriented planning. The course will be organized in frontal lessons (where fundamentals concepts and notions to develop exercises will be provided) and laboratory activities where students may test what they understood during lessons. During the course, many examples will be provided, some of them developed with students during laboratory activities.
Written examination and development of a mobile application.
-