This repo is a playground about best practices, using updated libraries and solutions in the Android world!
Check the apk from here
The main architecture of code based on MVI + CLEAN architecture. The division criteria is a hybrid strategy based on Feature + Layer by module. For the detail of architecture, please read this article.
This project includes a WearOS module designed for Android-based smartwatches like the Galaxy Watch. The app-watch
module contains app
, designsystem
, navigation
, and ui
submodules. You can build the app-watch:app
to have wearOS version of the application.
For the detail of navigation implementations, please read this article.
For the detail of handling preview of composable functions in this code-base, please read this article.
- Jetpack Compose
- CLEAN architecture
- MVI architectural pattern
- Coroutine Flow
- SQLDelight database
- Dagger Hilt
- Navigation
- Ktor client
- Work manager
- Unit test
- Support large screens
- Support WearOS devices
- Monochromatic app icon
- Version catalog & Convention Plugin (For the detail, please read this article)
- CI
- Git Hooks
- GitHub Actions
- Static Analysis(Kotlinter, Detekt) (For the detail, please read this article)
- GSON → Kotlinx Serialization
- ROOM → SQLDelight
- Retrofit → Ktor
- JUnit → Kotest
- Dagger-Hilt → Koin
- Jetpack Compose → Compose Multiplatform
- Git Hooks - Learn about Git hooks used in this project for code formatting and analysis.
- GitHub Actions - Explore the GitHub Actions workflows used to validate the code.
- Static Analysis - Discover how static analysis tools like Detekt and Ktlint are used in this project for code quality assurance.
Any PRs are very welcome! 😍 You can fix a bug, add a feature, optimize performance and even propose a new cool approach in code-base architecture. Feel free and make a PR! 😌
We use static analysis tools like Detekt and Ktlint in this project. Please either set up Git Hooks on your project or run Static Analysis before creating PR.