Mobile Application Development COM527
The Mobile Application Development (MAD) module develops your ability to design, build and evaluate modern Android applications using Kotlin and contemporary Android development frameworks. Throughout the module, you learn how mobile applications are structured, how users interact with them, and how to integrate device features, databases and online services into functional mobile solutions.
The module begins by introducing you to the Android development environment and the fundamental concepts behind Android applications. You learn how Android Studio is used to develop, run and test applications, while gaining experience of Kotlin within a mobile development context. This provides the foundation for understanding how Android applications are organised and deployed.
A significant focus of the module is the development of modern user interfaces using Jetpack Compose and Material Design principles. You learn how to create attractive, responsive and accessible interfaces that follow recognised design standards. Through practical activities, you develop applications that provide intuitive user experiences across different devices and screen sizes.
As your skills progress, you learn how mobile applications can access and manage device resources. This includes working with user permissions, obtaining location information and displaying geographical data using mapping technologies. These topics help you understand how mobile applications interact with smartphones and their built-in hardware and services.
The module also introduces techniques for managing application state and creating multi-screen applications. You learn how to structure applications effectively using navigation frameworks and ViewModels, enabling users to move seamlessly between screens whilst maintaining application data and functionality. These concepts are essential when developing larger and more sophisticated mobile applications.
Another important area of study is asynchronous programming using Kotlin Coroutines. You learn how to perform tasks in the background without compromising the responsiveness of the user interface. This allows applications to remain responsive whilst retrieving data, accessing online services or performing longer-running operations.
The module further develops your knowledge by introducing data storage and database development through SQLite and the Room persistence framework. You learn how to create applications that store information permanently, retrieve data efficiently and manage records within local databases. This enables the development of more realistic applications that maintain information between sessions.
Alongside local data storage, you learn how to communicate with external systems through network communication and web APIs. You explore how Android applications can retrieve information from online sources and process data in formats such as JSON. These skills allow you to create applications that integrate with web services and dynamic online content.
The module also covers a range of Android platform features including dialogs, notifications, services, broadcasts and intents. You learn how applications notify users of important events, perform background operations, respond to system events and interact with other applications installed on the device. These topics help you understand how Android applications operate within the wider mobile ecosystem.
A key emphasis throughout the module is the development of applications that are both technically robust and user centred. You are encouraged to consider usability, responsiveness, performance and maintainability while applying modern Android development practices and frameworks.
Overall, the MAD module equips you with the knowledge and practical skills required to design and develop contemporary Android applications. By the end of the module, you should be able to create mobile apps that include modern user interfaces, navigation, location services, databases, networking, notifications and Android platform integration while following current industry development practices.
Overview
1. Introduction to Android Development
- Introduction to Android application development.
- Understanding Android Studio and the development environment.
- Creating and running your first Android applications.
- Introduction to Kotlin within an Android context.
- Understanding the basic structure of Android projects.
2. Further Compose, Material Design
- Building user interfaces using Jetpack Compose.
- Understanding Material Design principles.
- Creating responsive and visually consistent interfaces.
- Working with layouts, themes and UI components.
- Improving user experience through modern design practices.
3. Location, Permissions and View Model
- Accessing location data within Android applications.
- Managing runtime permissions securely.
- Understanding Android permission models.
- Using ViewModels to manage application state.
- Separating business logic from user interface components.
4. Introduction to Mapping
- Integrating maps into Android applications.
- Displaying geographical information visually.
- Working with map APIs and map components.
- Handling user location data within maps.
- Developing location-aware applications.
5. Navigation Part 1
- Introduction to application navigation.
- Moving between screens within an app.
- Understanding navigation architecture.
- Passing data between screens.
- Creating structured user journeys.
6. Navigation Part 2
- Advanced navigation techniques.
- Managing complex navigation structures.
- Supporting deeper screen hierarchies.
- Improving usability through effective navigation design.
- Creating more sophisticated multi-screen applications.
7. Introduction to Kotlin Coroutines
- Understanding asynchronous programming.
- Introduction to Kotlin Coroutines.
- Executing background tasks efficiently.
- Avoiding user interface blocking.
- Managing concurrency in Android applications.
8. Querying SQLite Databases with Room
- Introduction to local data storage.
- Using SQLite databases through the Room framework.
- Creating entities, data access objects and repositories.
- Performing database queries.
- Managing persistent application data.
9. Network Communication and JSON Parsing
- Accessing data from web services and APIs.
- Making network requests from Android applications.
- Understanding JSON data structures.
- Parsing API responses into Kotlin objects.
- Integrating external data sources into applications.
10. Dialogs and Notifications
- Creating dialogs to interact with users.
- Displaying alerts, confirmations and prompts.
- Implementing Android notifications.
- Communicating important information to users.
- Supporting user engagement and interaction.
11. The Activity Lifecycle, Services, Broadcasts
- Understanding the Android Activity Lifecycle.
- Managing application state through lifecycle events.
- Using services to perform background operations.
- Working with broadcasts and system events.
- Building more robust and efficient Android applications.
12. Implicit Intents
- Understanding Android intents and inter-application communication.
- Using implicit intents to launch external applications.
- Sharing data between applications.
- Opening maps, websites, email clients and other Android services.
- Integrating Android applications into the wider device ecosystem.
Overall Module Themes
Across the 12 topics, you will develop skills in:
- Android application development using Kotlin.
- User interface design with Jetpack Compose.
- Material Design and user experience principles.
- Location-based and mapping applications.
- Navigation and multi-screen application development.
- Asynchronous programming with Coroutines.
- Database development using Room and SQLite.
- Network communication and API integration.
- Notifications and user engagement features.
- Android lifecycle management.
- Background processing and system services.
- Inter-application communication using intents.