Mobile App Development, KSD
AbstractThis course gives an introduction to Java development of apps for the Android platform, and an overview of concepts for handling concurrency on mobile devices.
Modern computing happens increasingly on mobile devices, principally tablets and mobile phones. Developing applications for mobile devices brings a different set of challenges than does developing for a traditional desktop or server environment, because everything is constrained: there is a limited amount of battery, screen real-estate, computational power, and storage to go around. Mobile devices for that reason have programming models and operating systems that are different from their desktop cousins. The vast majority of commercially available devices today run Android or iOS; understanding the programming model of either is an important step towards programming mobile devices in general.
This course teaches the basics of Android development for mobile devices.
The following topics will be introduced:
- the four fundamental Android components (activities, services, content providers and broadcast receivers) and intents
- designing user interfaces using layouts and resources
- working with files and databases on a mobile device
- the Android life cycles and thread model
- using built-in camera, sensors and libraries/tasks e.g. calendar and contacts
- mobile/server communication including RESTful APIs and JSON
- Android libraries for creating location aware apps.
Intended learning outcomes
After the course, the student should be able to:
- design a user-friendly, safe and efficient app
- implement a non-trivial Android app
- describe and analyze the architecture and work flow of an Android app
- design and implement Android user interfaces using activities, views and scrollable lists
- design and implement responsive, multi-threaded Android apps with asynchronous tasks and services
- design and implement a location aware app
- design and implement an app using the built-in sensors and camera
- design and implement an app that communicates with remote services
- design and implement an app that interfaces with databases both on the device and offline
- plan and execute the deployment of an Android app using Android studio
Ordinary examExam type:
B: Oral exam, external (7-trinsskala)
B22: Oral exam with no time for preparation.