The Android SDK has changed much since its first version. Every new version comes with many new APIs. However, there is no perfect API, some do too much under the hood, others couple your classes to the context, others have more lifecycle events than you have years in your life.
This sample project shows how to apply MVP and Clean architecture on an Android app. Demo Video!
A brief explanation of both architectures
The mvp branch of this repo follows this architecture:
The clean branch of this repo follows this architecture: