- Language: Kotlin
- Architecture: MVVM with clean
- Android architecture components: ViewModel, LiveData, Room and Navigation
- Dependency injection: koin
- Network: Retrofit, RxJava, okHttp
- Presentation
- Domain
- Data
- UI calls method from ViewModel.
- ViewModel executes Use case.
- Use case communicate with Repositories.
- Each Repository returns data from a Data Source (Local or Remote).
- Information flows back to the UI where we display the list.
- data: Contains APIs, Database
- ki: Dependency providing classes using koin.
- ui: View classes along with their corresponding ViewModel.
- util: Utility classes.
- doamin: Contains Use Cases, and Model Objects. Business logic happens here.
- RxJava2: https://github.com/ReactiveX/RxJava
- koin: https://insert-koin.io/
- Glide: https://github.com/bumptech/glide
- Retrofit: https://square.github.io/retrofit/
- Room: https://developer.android.com/jetpack/androidx/releases/room 6: okhttp: https://square.github.io/okhttp/
- newsapi : https://newsapi.org/docs