A simple Android app template repository that provides a basic structure for building general Android native applications. This project incorporates the best practices and features I've gained from my experience.
The project is modularized into the following components:
- domain modules are written in pure Kotlin, with no external dependencies. These modules contain use-cases and repository interfaces
- data modules include all repositories implementations, database, and network layers
- feature modules are responsible for presentation. Built using MVVM and Jetpack Compose
- app is the Android application module that integrates all other modules into a complete app
- Gradle build config is based on Kotlin DSL and version catalogs
- Dependency injection with Hilt
- Jetpack Compose for building UI
- Declarative conditional navigation
- Unit tests using JUnit5 and MockK
- Shared Element Transitions in Jetpack Compose
- Gradle Convention Plugins for build optimization
- etc.