I have use a clean architecture approach with three layers: Data, Domain, UI. In the UI layer, i have use the MVVM pattern: Model-View-ViewModel.
- Android Support Library
- Android Architecture Components
- Android Data Binding
- Dagger 2 for dependency injection
- Retrofit for REST api communication
- RxJava Concurrency, app layers communication
- Glide for image loading
- Timber for logging