Share
Explore

Student Learning Lab Notebook: Android Jetpack Architecture Components with Exercises

Table of Contents


Introduction to Android Jetpack Architecture Components
LiveData and ViewModel
Data Binding
Room Persistence Library
WorkManager
Exercises

1. Introduction to Android Jetpack Architecture Components

Android Jetpack Architecture Components are a collection of libraries that help you design robust, testable, and maintainable apps. They provide guidance on app architecture and include libraries for common tasks like lifecycle management and data persistence.

Some of the key components include:

LiveData
ViewModel
Data Binding
Room Persistence Library
WorkManager

2. LiveData and ViewModel

LiveData


LiveData is an observable data holder class that is lifecycle-aware.
This means it respects the lifecycle of other app components, such as activities and fragments, and only updates app component observers that are in an active lifecycle state.

Exercise 1: Create a simple LiveData example where the LiveData object is observed by an activity.

ViewModel


ViewModel is a class designed to store and manage UI-related data in a lifecycle-conscious way. It allows data to survive configuration changes such as screen rotations. ViewModel helps prevent common issues like memory leaks and crashes due to stopped activities.

Exercise 2: Create a ViewModel to store and manage LiveData in an example app.


3. Data Binding



Data Binding is a support library that allows you to bind UI components in your layout files to data sources in your app using a declarative format, rather than programmatically.


Exercise 3: Implement Data Binding in an example app to display data from a ViewModel in a layout.


4. Room Persistence Library



Room is a persistence library that provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.


Exercise 4: Create a simple app that uses Room to store and retrieve data. Include the following components:


Entity
DAO (Data Access Object)
Database


5. WorkManager



WorkManager is a library that helps you manage background tasks that need to run when various constraints, such as network availability or device charging, are met.


Exercise 5: Implement WorkManager in an example app to perform a background task when the device is charging and connected to Wi-Fi.


6. Exercises



Exercise 1: LiveData



Create a new Android Studio project.
Add LiveData to your project dependencies.
Create a LiveData object in your main activity.
Observe the LiveData object in your main activity and update the UI when LiveData changes.


Exercise 2: ViewModel



Add ViewModel to your project dependencies.
Create a ViewModel class that extends ViewModel.
Move the LiveData object from your main activity to the ViewModel.
Use the ViewModel in your main activity to observe the LiveData.


Exercise 3: Data Binding



Enable Data Binding in your project.
Create a layout file with Data Binding expressions.
Bind the ViewModel to the layout file in your main activity.


Exercise 4: Room Persistence Library



Add Room to your project dependencies.
Create an Entity class representing a table in the database.
Create a DAO interface with methods for accessing the database.
Create a RoomDatabase class and define your database using the @Database annotation.
Use the Room database in your app to store and retrieve data.


Exercise 5: WorkManager



Add WorkManager to your project dependencies.
Create a Worker class that extends Worker and defines the background task.
Create a WorkRequest with constraints such as charging and Wi-Fi connectivity.
Enqueue the WorkRequest using WorkManager.
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.