Introducing MVC, MVP, and MVVM as presentation patterns
In the beginning, most Android projects were designed as a bunch of Activity
or Fragment
classes that were setting content to their corresponding Extensible Markup Language (XML) layouts.
As projects grew and new features were requested, developers had to add more logic inside the Activity
or Fragment
class, development cycle after development cycle. This means that anything from a new feature, improvement, or bug fix for a particular screen would have to be done inside those Activity
or Fragment
classes.
After some time, these classes became larger and larger, and at some point, adding an improvement or fixing a bug could become a nightmare. The reason for this would be that the Activity
or Fragment
classes were burdened with all the responsibilities from within a particular project. These classes would be doing the following:
- Defining the UI
- Preparing the data to be displayed and defining different UI states...