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

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:

Data Binding
Room Persistence Library

2. LiveData and ViewModel


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 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:

DAO (Data Access Object)

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 (
) instead.