It demonstrates the way you can combine Dagger 2, RxJava, Retrofit and the Data Binding Library all together inside the Viper - MVVM Architecture. I inspired from the already existing Coursera project presented by Richa Khandelwal and added the things that were missing to cover my needs.
Basically I used:
- Dagger 2 for dependency injection
- Retrofit to provide Observables from REST endpoints
- RxJava to provide the ViewModels from my presenters
- Data Binding Library to provide bind the ViewModels to my layouts
I also tried to cover some part of code with Unit Test and to demonstrate the way you can actually use Dagger 2 to provide your Mocks.
- [Dagger 2] http://google.github.io/dagger/subcomponents.html
- [RxJava] https://github.com/ReactiveX/RxJava/wiki
- [Retrofit] https://square.github.io/retrofit/
- [Data Binding] https://developer.android.com/topic/libraries/data-binding/index.html
- [CourseraDemo Viper Architecture] https://github.com/richk/CourseraDemoApp
I would really appreciate feedbacks or pull requests and I would also like to exchange ideas on this matter. You can find me on Hangouts: [email protected]
Like most of you, I am al also struggling to find the best architecture to use in my projects and so far what I could came up with is this.
Thank you for your contribution !!!