a small todo app built with Jetpack Compose
It's a basic todo app. You can list, add, edit and remove todos.
This project is based on clean architecture with the following modules:
- domain(kotlin) module for use cases and entities
- data(kotlin) module for repository implementations and data sources definitions
- device(android) for implementation details related to the data sources
- app module which is the presentation layer and where MVVM is used
app
module depends on all modules because of dependency injection. We need to retrieve koin modules. all the implementations details
use kotlin internal
modifier. So in theory App module depends only on domain module.
Domain module has no module dependency.
Data module depends on domain.
Device module depends on Data.
All modules, except app
, are kotlin multiplaform modules
- Jetpack libraries (Jetpack Compose, ViewModel)
- Koin for dependency injection
- Kotlin and Kotlin Coroutines
- Accompanist
- SqlDeligth for data persistence
- Tests(I had test before migrating to KMM but after the migration they are all broken. I need to work on that)
- Compose UI testing
- Animations
- CI/CD