Simple Android app, template repository, that can be used as a basic structure for general Android native apps. Here I try to use the best features and practices that I've got from my experience.
There are 3 main modules in the project:
- domain is written in pure kotlin, no other dependencies. All business logic should be located here
- data module includes all repositories implementations with DB and network layers
- app is responsible for presentation. It's an android application module, based on MVVM and Compose
- Gradle build config is based on Kotlin DSL and version catalogs
- Dependency injection with Hilt
- Jetpack Compose
- Conditional navigation, using declarative approach
- Unit tests using JUnit5 and MockK
- Shared Element Transitions in Compose
- etc.