Let's review what you will be learning in this course, including a brief discussion on the benefits of MVP and the course sample project
Learn about the need for architecture patterns like MVP and define the components of an MVP-based app.
Create the Model classes for the course sample project, including adding JUnit tests of Model classes.
Create a repository interface for saving your Model data, and implement a concrete version of the repository using the Room database library.
See how interfaces and contracts are used with the MVP pattern, and define the Presenter interface and a BasePresenter class.
Examine the XML layout file and Kotlin class that constitute the Add Creature screen, and define and implement the MVP View interface.
Implement the Presenter interface in a concrete class that extends from the BasePresenter class, and call the Presenter from the View.
Use JUnit to add unit tests to verify the functionality of the Presenter, while utilizing Mockito to mock dependent classes.
Prove out your understanding of writing Presenter tests by adding more tests to verify the correct functionality of the Presenter.
Add the ability for the Presenter to save data into the repository when receiving a save user event from the View.
Put your new MVP skills to work by creating a Presenter for the All Creatures screen that shows a list of all creatures in the repository.
Review what you learned in the course and learn about other potential architecture patterns for your Android apps.