This is a simple application to demonstrate CLEAN architecture. Data is provided from themoviedb Feel free to build & try it!
- Retrofit + OkHttp
- Dagger2
- RxJava2
- Glide
- Android Architecture Components : Extensions
- Paginate
I have created 4 top level packages:
- data: contains components to get the data, also holds the implementation of the domain-defined DataSource interface
- device: contains implementations for the domain-defined interfaces strongly linked to Android environment like ImageLoader and ResourceHelper
- domain: defines the business objects like actions, operations, entities, use cases
- presentation: responsible for presenting data and communicating with domain layer.
Ideally the data and domain layers could be pure kotlin modules without any Android-related dependencies. Presentation and device would still be application and android library respectively because they have dependencies towards the Android framework.