Task Management App is a native Android application for creating, organizing, and tracking tasks and subtasks. It supports priorities, due dates, task links, progress tracking, voice search, and local reminders.
The application is built with Kotlin and Jetpack Compose using the MVVM architecture. Room is used for local data storage, Hilt for dependency injection, and Android's native speech recognition and notification APIs provide voice search and local reminders.
The project focuses on an offline-first approach, with task data stored locally and the UI reacting to database changes through Flow and ViewModels.
- Create, edit, and delete tasks
- Create and manage subtasks
- Add descriptions, priorities, and due dates
- Attach external links to tasks and subtasks
- Mark tasks as completed
- Track task and subtask progress
- Search tasks using voice commands
- Local notifications for upcoming deadlines
- Offline access to stored tasks
The application follows the MVVM architecture with a clear separation between the UI, application logic, and local data layer.
Compose UI -> ViewModel -> Room / Repository -> Local Database
The Android application is organized around:
- UI - Jetpack Compose screens and components
- ViewModel - UI state and application logic
- Repository - data access and application data flow
- Room - local database and data persistence
- Models - tasks, subtasks, and task links
- Dependency Injection - Hilt modules for managing dependencies