MVVM on Android

In this course, you will learn how to build an Android app using the Model-View-ViewModel presentation architecture pattern including testing. By Joe Howard.

Leave a rating/review
Download materials
Save for later

Who is this for?

Intermediate Android developers who want to learn how to structure their projects in a scalable and maintainble way using the Model-View-ViewModel architecture pattern.

Covered concepts

  • Separation of Concerns
  • Model-View-ViewModel (MVVM)
  • Repository Pattern
  • Writing Automated Tests

Part 1: MVVM on Android

Toggle description

Let’s review what you will be learning in this course, including a brief discussion of benefits of MVVM and the course sample project.

Toggle description

Learn about the need for architecture patterns like MVVM and define the layers of an MVVM app.

Toggle description

Create the Model layer for the course sample project, including adding JUnit tests of Model layer classes.

Toggle description

Create a repository interface for saving your Model data, and implement a concrete version of the repository using the Room database library.

Toggle description

Examine the XML layout file and Kotlin class that constitute the View layer of the Add Creature screen.

Toggle description

See how to use the Android Architecture Component ViewModel and LiveData classes to create a ViewModel layer for your app.

Toggle description

Use JUnit to add unit tests for the functionality of the ViewModel layer, while utilizing Mockito to mock dependent classes.

Toggle description

Add the ability for the ViewModel to save Model data into the repository when receiving user events from the View layer.

Toggle description

Prove out your understanding of writing ViewModel tests by adding a test

Toggle description

Put your new MVVM skills to work by creating a ViewModel for the All Creatures screen that shows a list of all creatures in the repository.

Conclusion 1:45
Toggle description

Review what you learned in the course and learn about other potential architecture patterns for your Android apps.