Skip to content

(MVVM) Model View View Model

Devrath edited this page May 30, 2021 · 10 revisions

Improvement from MVC, MVP to a better Architecture

  • To overcome the drawbacks of MVC, MVP architecture modifications were done to segregate it to a better representation of architecture called Model-View-ViewModel.
  • It is one of the very popular ways of structuring the android code.
  • MVVM helps you to separate your code into many layers that let you have your own responsibilities.
  • Code becomes more readable, testable, maintainable.
  • The codebase stands the test of time.
Contents
MVVM block diagram
MVP + Repository Pattern block diagram
Using the android architecture component in MVP

MVP block diagram

  • Different people use different variations of the MVP pattern.
  • Common and the most popular type of MVP pattern is by using a contract between the view and the presenter
  • The contract is an interface between the view and the presenter
  • The view calls a method to initiate an action in the presenter, the action can be to fetch the data from the model.
  • Finally once the data is retrieved from the model the presenter notifies the view via the callback from the contract.

MVP + Repository Pattern block diagram

  • A repository is used to manage the data from API and loacal database.
  • We condider Model = Repository + API + Local Database

Using the android architecture component in MVP

  • Why not - of course, yes.
  • Instead of the contract that exists between view and presenter, We can use a LiveData

Clone this wiki locally