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. Hints about the IOS platform and Objective-C programming language will be provided as well.
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.
The IOS platform (hints) - Introduction to IOS platform. General architecture. The Objective-C language. The CocoaTouch framework.