Lately there has been a lot of talk about clean architecture in the Android space including MVC, MVP, MVVM, and more. Let's break down some of these design patterns and talk about how one might implement them on Android.
MVC Supervising Controller ● The View relays user input to the Controller ● The Controller processes input and updates the Model ● Changes in Model state are used to update the View
MVPC WTF ● Modified version of MVP to accommodate Android framework ● Cleanly separates business logic from UI and Activity lifecycle ● Enables unit testing of non-Android components ○ Presenter ○ Model
References Development of Further Patterns of Enterprise Application Architecture (DFPEAA) Martin Fowler Fragmented (Episode #11) - The Fowler Road to a Clean Architecture Donn Felker & Kaushik Gopal Android Architecture - A simple guide for MVC, MVP and MVVM on Android projects Thanos Karpouzis