The Todo project is a sample Android application designed to demonstrate how to create a multi-module application that is modularized by layer and feature. The application is built using Kotlin, Coroutines, Flow, Hilt, Jetpack Compose, and Room for Database.
The purpose of the project is to provide an example of how to create a modularized Android application that can be easily maintained and scaled. Each feature and layer is encapsulated in a separate module, making it easy to add or remove functionality without affecting other parts of the application.
The following technologies are used in this project:
- Kotlin: A statically-typed programming language for modern multi-platform applications.
- Coroutines: A lightweight concurrency framework for asynchronous programming in Kotlin.
- Flow: A reactive stream library for asynchronous programming in Kotlin.
- Hilt: A dependency injection framework built on top of Dagger 2 for Android.
- Jetpack Compose: A modern UI toolkit for building native Android UIs.
- Room: A persistence library that provides an abstraction layer over SQLite for database storage.
- Version Catalog: Sharing dependency versions between projects
The application is composed of several modules that depend on each other. Here's a diagram that illustrates the dependencies between the modules:
Most of the features are not completed yet, so anyone can contribute and improve this project following the Contributing Guideline.