An architecture of systems that enables re-usability, layer independence, modularity, and ease of use by dividing it into layers for responsibility separation.
Overview of Clean Architechtecure
state - change events
View : the UI layer, displays data received from Presenter, reacts to user input.
Presenter : responds to actions performed on the UI layer, performs tasks on Model objects (using Use Cases), passes results of those tasks to Views.
Model : the data layer.
Model-View-Presenter architectural pattern as a method for developing Android apps with a clean architecture approach.
Application having a Clean Architecture will be
The architecture does not depend on the existence of some library of feature laden software. This allows you to use such frameworks as tools, rather than having to cram your system into their limited constraints.
Independent of Frameworks
The business rules can be tested without the UI, Database, Web Server, or any other external element.
The UI can change easily, without changing the rest of the system. A Web UI could be replaced with a console UI, for example, without changing the business rules.
Independent of UI
You can swap out Oracle or SQL Server, for Mongo, BigTable, CouchDB, or something else. Your business rules are not bound to the database.
Independent of Database
A Simple Example in Android
enunciation of a simple example of MVP in Android and how its advantages come into picture.