A simple and intuitive personal task management app built for Android using Room, Jetpack Navigation, Koin, and supporting both English and Arabic languages.
- Overview
- Features
- Architecture
- Dependencies
- Getting Started
- Design System
- Screenshots
- Testing
- Contributing
- License
the cute tudee app is a lightweight task management application designed to help users organize their daily tasks efficiently.
The app stores data locally using the Room database and ensures a seamless user experience with Jetpack Navigation 2. It adheres to SOLID principles and maintains a clean, modular architecture.
Key features include:
- Local storage using Room Database
- Smooth navigation using Jetpack Navigation 2
- Dependency injection with Koin
- ViewModel-based architecture
- Support for multiple languages (English and Arabic)
- Dark mode and light mode support
- Onboarding screen for first-time users
- Full task management (create, view, edit, delete)
- Appears only on the first launch.
- Guides users through initial setup.
- Displays statistics about today’s tasks.
- Shows task counts by status (To Do, In Progress, Done).
Users can create new tasks with:
- Title
- Description
- Priority
- Category
- Due date
- View full details of any task.
- Update task status (To Do → In Progress → Done).
- View all tasks based on a selected date.
- Predefined categories (e.g., Work, Personal, Study).
- Add custom categories with images from the device.
- Edit or delete custom categories.
- Switch between dark and light themes.
- Automatically adapts to the device's language settings (English and Arabic).
- Supports various screen sizes and orientations.
The app follows a simple yet robust architecture:
-
- Each screen has its own
ViewModel. - ViewModels depend on an abstraction called
TasksServices.
- Each screen has its own
-
- Provides domain-level models (entities).
- Maps data retrieved from Room DAOs into domain entities.
-
- Stores task data locally.
- Uses DAOs to interact with the database.
-
- Uses Koin for DI.
- Ensures higher-level modules do not depend on lower-level ones.
-
- Adheres strictly to SOLID principles .
-
- Maintains a simple architecture without over-engineering.
- Includes only necessary components.
-
Android Jetpack Components:
- Room Database
- Jetpack Navigation 2
- ViewModel
- LiveData
- DataStore (for theme preferences)
-
Koin: For dependency injection.
-
Material Design 3: For UI components.
-
Glide: For image loading (optional).
-
JUnit / Espresso: For unit and UI testing.
- Android Studio 4.2+
- JDK 11+
- Gradle 7.0+
- Clone the project:
git clone https://github.com/Baghdad-Squad/Tudee.git