A beautiful, modern, and highly animated Android todo app by Sedin Technologies, built with Kotlin and Jetpack Compose. Features a stunning UI with smooth animations, reminder notifications, and a motivating design that encourages task completion.
- Beautiful Modern UI: Material Design 3 with gradient backgrounds, smooth animations, and engaging visual elements
- Full Animations: Spring animations, transitions, and animated progress indicators
- Task Management: Create, edit, delete, and mark tasks as complete
- Smart Reminders: Set reminders with date and time pickers, receive notifications
- Priority Levels: Categorize tasks as Low, Medium, or High priority
- Filtering: View All, Pending, or Completed tasks
- Progress Tracking: Visual progress bar showing completion percentage
- Motivational Messages: Dynamic messages based on your progress
- Local Storage: Room database for persistent data storage
- Language: Kotlin
- UI Framework: Jetpack Compose
- Architecture: MVVM (Model-View-ViewModel)
- Database: Room
- Notifications: WorkManager
- Dependency Injection: Manual (can be upgraded to Hilt/Koin)
- Material Design: Material 3
app/
├── src/main/
│ ├── java/com/todo/app/
│ │ ├── data/ # Room database entities, DAOs
│ │ ├── domain/ # Domain models
│ │ ├── repository/ # Data repository
│ │ ├── ui/
│ │ │ ├── components/ # Reusable UI components
│ │ │ ├── screens/ # Main screens
│ │ │ └── theme/ # Theme, colors, typography
│ │ ├── util/ # Utilities (notifications, workers)
│ │ ├── viewmodel/ # ViewModels
│ │ └── MainActivity.kt # Main activity
│ └── res/ # Resources
- Android Studio Hedgehog (2023.1.1) or later
- JDK 17 or later
- Android SDK 24 (minimum), 34 (target)
-
Clone the repository (or navigate to the project directory):
cd todo-kotlin -
Open in Android Studio:
- Open Android Studio
- Select "Open an Existing Project"
- Navigate to the
todo-kotlindirectory - Wait for Gradle sync to complete
-
Sync Gradle:
- Android Studio should automatically sync
- If not, click "Sync Now" or go to
File > Sync Project with Gradle Files
-
Run the app:
- Connect an Android device or start an emulator (API 24+)
- Click the "Run" button or press
Shift + F10 - The app will build and install on your device
The app requires the following permissions (already configured):
POST_NOTIFICATIONS- For reminder notificationsSCHEDULE_EXACT_ALARM- For precise reminder schedulingUSE_EXACT_ALARM- For exact alarm usage
On Android 13+, you'll need to grant notification permissions when prompted.
- Tap the floating action button (+)
- Enter task title (required)
- Optionally add a description
- Select priority level (Low, Medium, High)
- Optionally set a reminder date and time
- Tap "Save"
- Complete a task: Tap the checkbox or tap anywhere on the task card
- Edit a task: Tap the edit icon on a task card
- Delete a task: Tap the delete icon on a task card
- Filter tasks: Use the filter chips at the top (All, Pending, Completed)
- Clear completed: In the Completed filter, tap the delete icon in the app bar
- Set a reminder when creating or editing a task
- You'll receive a notification at the specified time
- Notifications will only fire if the task is not completed
- Gradient backgrounds: Beautiful gradient cards for each task
- Animated progress bar: Smoothly animates as you complete tasks
- Spring animations: Bouncy, natural-feeling animations
- Motivational messages: Dynamic messages that change based on progress
- Color-coded priorities: Visual indicators for task priority
- Smooth transitions: All interactions feel fluid and responsive
./gradlew assembleDebug./gradlew assembleReleaseThe APK will be generated in app/build/outputs/apk/
Edit app/src/main/java/com/todo/app/ui/theme/Color.kt to customize the color scheme.
Animation parameters can be adjusted in:
TodoItem.kt- Item animationsAddTodoDialog.kt- Dialog animationsTodoScreen.kt- Progress and list animations
Potential features to add:
- Cloud sync
- Categories/Tags
- Recurring tasks
- Dark mode improvements
- Widget support
- Task search
- Export/Import functionality
- Statistics dashboard
-
Gradle sync fails:
- Check internet connection
- Invalidate caches:
File > Invalidate Caches / Restart
-
Kotlin version issues:
- Ensure Kotlin version matches in
build.gradle.kts
- Ensure Kotlin version matches in
-
Room compilation errors:
- Ensure KSP plugin is properly configured
- Clean and rebuild:
Build > Clean Project, thenBuild > Rebuild Project
-
Notifications not working:
- Grant notification permissions in app settings
- Check Android version (requires Android 13+ for runtime permission)
-
Reminders not firing:
- Ensure device time is correct
- Check WorkManager status in system settings
This project is open source and available for personal and commercial use.
Feel free to fork, modify, and use this project as you wish!
Built with ❤️ using Kotlin and Jetpack Compose