This pattern splits the User Interface code into 3 conceptual parts - Model, View and ViewModel.
This is a set of classes representing the data coming from the services or the database.
This is the code corresponding to the visual representation of the data the way it is seen and interacted with by the user.
serves as the glue between the View and the Model. It wraps the data from the Model and makes it friendly for being presented and modified by the view. ViewModel also controls the View's interactions with the rest of the application