The app is written 100% in Kotlin with Unit Tests and Instrumentation tests.
In this repository I attempt to demonstrate the following concepts:
- Clean Architecture with MVVM (Model View ViewModel) on the presentation layer
- Usage of Jetpack libraries
- Usage of Kotlin's Coroutines and Flow for background execution
- Dependency Injection using Dagger Hilt
In order to run this project you need the following:
- Android Studio 4.1.1 or better
- Gradle 6.5 or better
- JDK 1.8
- Android SDK
The application has been split into 3 modules - Domain, Data and App.
- Kotlin
- Kotlin Coroutines
- Flow
- Retrofit - An http client for android
- Okhttp - For networking requests
- Mockito - For mocking instances
- Moshi - For parsing JSON into Objects
- Dagger Hilt - For dependency injection
- Lottie Android - For animation
- Truth - For assertions during testing
- Jetpack Libraries