|SVILUPPO DI APPLICAZIONI MOBILI||INF/01||LEZIONI||48|
The student who successfully completes the course will have the ability to design, develop and distribute applications for mobile devices such as smartphones or tablets (app); will have high-level understanding of how operating systems for mobile or otherwise resource-constrained devices operate, and will have working knowledge of Android (and related development tools and environments) in particular.
The oral exam consists mostly of a detailed discussion of the technical and design choices (both in terms of software design, and of UI design) relevant for the chosen project. Students must demonstrate working knowledge of Android and of programming in general, and be able to argue in support of their particular choices. Students must also demonstrate the ability to sketch alternative solutions (in words) that they would adopt if requirements for the app were to change.
- Final oral exam
Students must develop and present a full Android app they have developed as project work; each student is entitled to propose a project of their own liking, and high-level requirements are agreed between the student and the teacher (to ensure equitable workload and that a sufficiently in-depth knowledge of Android programming is demonstrated).
By the end of the course, students will be able to design and build a fully working Android application.
Students will develop an application of their chosing (but agreed-upon with the instructor) in Java, Kotlin or C for Android. During the oral exam, the students will demonstrate the working of the application, and the instructor will inspect the source code, as a means of assessing both the quality of the design and implementation, and the level of the skill set of the author.
Delivery: face to face
- attending lectures
- participation in discussions
- individual study
- Laboratory work
- project work
1. Introduction; historical perspective on mobile evolution; history of Android
2. Android architecture; relationships with Linux; system components
3. Dalvik VM, development environment, deployment mechanisms and app markets
4. Resources and assets; run-time dispatching of resource access
5. Activities and their lifecycle; dispatching of Intents; Layout and Views; writing a custom View
6. Listview and DataAdapter; dialogs, notifications e alerts
7. Drawable and related subclasses; a useful example: 9patch
8. Storing data: Bundle and Parcelable; the Preferences framework; file system; caching; SQLlite and helper classes; Content Provider and Content Resolver
10. Broadcast receiver and system services (telephony, sensors, etc.)
11. Asynchronous execution and background threads
12. Specific frameworks: sensors, geolocation, web services, multimedia, networking
12. Native programming in C
Recommended reading includes:
Reto Meier, Professional Android 4 Application Development, Wrox Publishing, 2012, OR Reto Meier, Professional Android 2 Application Development, Wrox Publishing, 2010, complemented by: E. Di Saverio, S. Sanna, Android. Programmazione avanzata, Edizioni FAG, 2012.
Students are also strongly encouraged to peruse online documentation about the various Android APIs, especially the official Android Training site (http://developer.android.com/training) managed by Google. Those students who are especially interested in using sensors are encouraged to also read relevant sections of: Greg Milette, Adam Stround, Professional Android Sensor Programming, Wrox Publishing, 2012.
Individual project work and oral exam at the end of the course.