Repository presents different architectural approaches for building Android app. It shows how architecture evolves by introducing consecutive concepts that improve its structure. It starts with a basic View Model architecture and ends up with a variant of MVI based on Google's Architectural Components.
Path of evolution:
- View Model
- Model View Controller
- Model View Presenter
- Model View ViewModel
- Segue (introduction of clean interfaces for each layer of MVVM)
- React (handling async operations inside Model using reactive and functional programming paradigms)
- Model View Intent
- Components (MVI implemented using Google's ViewModel and LiveData, introduction of DI and aspect-oriented programming)
For more details see the following presentation Evolution of Software Architectures.