A moment ago, I was learn how to develop an Android Apps with the clean architecture. So, what have I learned? I was learn how to implements MVP, Dagger, RxJava, and Retrofit on a sample project. I have made an Android Apps that’s call an API from a mock server and retrieve text and image into a RecycleView. This app uses Flickr API.
MVP (Model View Presenter) is a pattern thats allows separate the presentation layer from the logic, so that everything about how the interface works is separated from how we represent it on screen. Ideally the MVP pattern would achieve that same logic might have completely different and interchangeable views.
Dagger is a dependencies injector. You can see more details about Dagger in this site. http://square.github.io/dagger/
RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.
Retrofit is a REST Client for Android and Java. It makes it relatively easy to retrieve and upload JSON. Retrofit uses the OkHttp library for HTTP requests.