MVC (Model View Controller):
M: Model – data model classes
V: View – XML files
C: Controller – handles the business logic
The controller is linked with the Android APIs making it difficult to unit test. Modularity & flexibility is a problem since the view and the controller are strongly linked.
MVP (Model View Presenter):
The View includes the XML and the activity/fragment classes. So the activity would ideally execute a view interface making it easier for unit testing.
MVVM (Model View ViewModel):
The Model contains data, tools for data processing, business logic. The View Model is responsible for covering the model data and preparing the data for the view. IT also provides a hook to pass events from the view to the model.
Regards,
Nitesh Bavishiya