A simple "To-Do" task application for Android built with Jetpack Compose, Room, Hilt, following MVVM Clean Architecture principles, and incorporating unit tests, Compose UI tests, Flow, Coroutines, and more.
- Create, read, update, and delete tasks.
- Modern UI designed with Jetpack Compose.
- Data persistence using Room database.
- Dependency injection with Hilt.
- MVVM Clean Architecture for separation of concerns.
- Asynchronous programming with Coroutines and Flow.
- Unit tests for business logic.
- Compose UI tests for UI components.
- Jetpack Compose: Modern UI toolkit for building native Android apps.
- Room: Persistence library for local data storage.
- Hilt: Dependency injection library.
- MVVM Clean Architecture: Separation of concerns architectural pattern.
- Coroutines: Asynchronous programming library for Kotlin.
- Flow: Asynchronous data stream library.
- Unit Testing: Utilizing JUnit and Mockito for unit tests.
- UI Testing: Compose UI testing framework.
![Home Screen](https://private-user-images.githubusercontent.com/8398530/305316941-229aa5a8-1e3e-4694-9b60-f3d9faebe031.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwODYyNzcsIm5iZiI6MTcyMjA4NTk3NywicGF0aCI6Ii84Mzk4NTMwLzMwNTMxNjk0MS0yMjlhYTVhOC0xZTNlLTQ2OTQtOWI2MC1mM2Q5ZmFlYmUwMzEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjdUMTMxMjU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDE0MTVlMGE0MTBmODhhYjUwM2Q1YTE1NTRhYTNjMmUwNzU3MzI2M2Y3NDVjMDIxZmNhMTE1ZjU3OTlhOTQxYyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.yIdKjDfKgu9zY9zaMNI6Ebp1HAdtU4cBzT4p2t9EVlI)
![Add Task Screen](https://private-user-images.githubusercontent.com/8398530/305317020-64c9d51a-eb90-4ed1-8df2-5d5c2d5af7e8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwODYyNzcsIm5iZiI6MTcyMjA4NTk3NywicGF0aCI6Ii84Mzk4NTMwLzMwNTMxNzAyMC02NGM5ZDUxYS1lYjkwLTRlZDEtOGRmMi01ZDVjMmQ1YWY3ZTgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjdUMTMxMjU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YWQ1MDMzNDE1NGVlYWQ2ZDZhNjk1MTM5NzQ4NGI1NTM2ZDY2MDkxZDUyYzg4OTI2N2Y1NDRhMzU5NzIyMzViYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.aUb0h2Db3jxUZCR8arlM2QYOFGa2Aj0BK030PuIvzc4)
![Task Detail Screen](https://private-user-images.githubusercontent.com/8398530/305317147-343eee1d-2220-4288-a9cc-98faebdfebae.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwODYyNzcsIm5iZiI6MTcyMjA4NTk3NywicGF0aCI6Ii84Mzk4NTMwLzMwNTMxNzE0Ny0zNDNlZWUxZC0yMjIwLTQyODgtYTljYy05OGZhZWJkZmViYWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjdUMTMxMjU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTNjNjdkZTQxM2U5YjE1YWEzYzk5YjkxZTUzOTJjNmU1ZTAyOWQ2MmJjYmUyM2VkMGNmMDAxYjI2NjdmMjNmMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.QY6meJd7mbo6FRzipdec1CNZ_7AgB50ZMmIWAj8uqqs)
- Clone the repository.
git clone https://github.com/pablin202/to-do-compose.git
- Open the project in Android Studio.
- Build and run the project on an Android device or emulator.
Contributions are welcome! Please feel free to fork the repository and submit pull requests with any improvements or bug fixes.
This project is licensed under the MIT License.
- Maintainer: Pablo Molina
- Twitter: @pablom
- LinkedIn: PabloM