This demo is based on Android MVP Architecture and how to properly use Android MVP with your great application.
You can find step by step guide from this blog
Model manage data components that provide functionality like fetch, store, sort, and expose data.
View manage user interface actions.
Presenter works as an intermediator between View and Model. Presenter accept event from View, analyse action, get required data from Model and send data back to View for update UI.
While working with any long-term project, it needs to be scalable, less complicated. MVP makes it possible by dividing code structure into three different layers (MODEL – PRESENTER – VIEW).
Follow this blog to understand steps. You will get clear instructions about how this code is developed.