Official course description, subject to change:
This course gives a fundamental overview of Android programming concepts and the best practices for mobile app development.
Mobile app development has grown significantly recently, mainly due to the current computational power of modern tablets and mobile phones. The development of mobile applications brings different challenges to the developer, such as where the application will run (hardware specifications) and how the application performs when running (OS specifications). This course provides fundamental knowledge on how to develop Android applications using the native programming language Kotlin and introduces the following topics:
- The Android application lifecycle;
- The four types of Android app components, namely: (1) activities, (2) services, (3) broadcast receivers, and (4) content providers;
- The design of user interfaces using imperative programming via Android Framework UI Toolkit;
- The design of user interfaces using declarative programming via Jetpack Compose;
- How to share data between Android components, how to persist data using files and databases, and how to manage the internal and external file storages;
- The use of concurrency to improve speed and performance in Android applications;
- The integration of Android apps with mobile backend services available on Google Firebase (i.e., app authentication, cloud-based database, and cloud-based storage);
- The development of multimedia applications using the built-in camera and audio resources;
- The use of geolocation information to develop location-aware Android applications;
- The use of device sensors (motion, position, environment, and advanced sensors) to collect additional information for Android applications; and
- The security aspects of Android deployment to make an Android application safer.
The student must be familiar with at least one object-oriented programming language, such as Java (highly recommended), C++, C#, or Objective-C. The student must be able to design, implement, and test medium-sized object-oriented programs as covered at SWU.
One of the following courses from the 1st and 2nd semesters of the BSc in Software Development (BSWU), such as Introductory Programming with Project, Algorithms and Data Structure or similar, provides these background skills.
Experience with Kotlin programming language will be an advantage but is not compulsory. Knowledge of functional programming is optional for this course.
Intended learning outcomes
After the course, the student should be able to:
- Design and implement native Android applications using the Kotlin programming language
- Identify Android components, their lifecycle, and their role in the mobile application pipeline
- Describe the Android OS architecture and how to implement, run, and debug a mobile app
- Design mobile applications based on the resources available in mobile devices and considering their limitations
- Design and implement mobile applications considering concurrency and using resources, such as communication and multimedia components, local and remote persistence data, location, and sensor
- Design user interfaces using imperative programming via Android Framework UI Toolkit and declarative programming via Jetpack Compose
- Plan and execute the deployment of an Android application using Android Studio.
Ordinary examExam type:
B: Oral exam, External (7-point scale)
B1H: Oral exam with time for preparation. Home.