Skip to content

royalcreator1/todo-kotlin

Repository files navigation

Todo Notes - Modern Android Todo App 🚀

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.

Features ✨

  • 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

Tech Stack 🛠️

  • 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

Project Structure 📁

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

Setup Instructions 🚀

Prerequisites

  • Android Studio Hedgehog (2023.1.1) or later
  • JDK 17 or later
  • Android SDK 24 (minimum), 34 (target)

Installation

  1. Clone the repository (or navigate to the project directory):

    cd todo-kotlin
  2. Open in Android Studio:

    • Open Android Studio
    • Select "Open an Existing Project"
    • Navigate to the todo-kotlin directory
    • Wait for Gradle sync to complete
  3. Sync Gradle:

    • Android Studio should automatically sync
    • If not, click "Sync Now" or go to File > Sync Project with Gradle Files
  4. 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

Permissions

The app requires the following permissions (already configured):

  • POST_NOTIFICATIONS - For reminder notifications
  • SCHEDULE_EXACT_ALARM - For precise reminder scheduling
  • USE_EXACT_ALARM - For exact alarm usage

On Android 13+, you'll need to grant notification permissions when prompted.

Usage 📱

Creating a Task

  1. Tap the floating action button (+)
  2. Enter task title (required)
  3. Optionally add a description
  4. Select priority level (Low, Medium, High)
  5. Optionally set a reminder date and time
  6. Tap "Save"

Managing Tasks

  • 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

Reminders

  • 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

UI Highlights 🎨

  • 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

Building 🏗️

Debug Build

./gradlew assembleDebug

Release Build

./gradlew assembleRelease

The APK will be generated in app/build/outputs/apk/

Customization 🎨

Colors

Edit app/src/main/java/com/todo/app/ui/theme/Color.kt to customize the color scheme.

Animations

Animation parameters can be adjusted in:

  • TodoItem.kt - Item animations
  • AddTodoDialog.kt - Dialog animations
  • TodoScreen.kt - Progress and list animations

Future Enhancements 🔮

Potential features to add:

  • Cloud sync
  • Categories/Tags
  • Recurring tasks
  • Dark mode improvements
  • Widget support
  • Task search
  • Export/Import functionality
  • Statistics dashboard

Troubleshooting 🔧

Build Errors

  1. Gradle sync fails:

    • Check internet connection
    • Invalidate caches: File > Invalidate Caches / Restart
  2. Kotlin version issues:

    • Ensure Kotlin version matches in build.gradle.kts
  3. Room compilation errors:

    • Ensure KSP plugin is properly configured
    • Clean and rebuild: Build > Clean Project, then Build > Rebuild Project

Runtime Issues

  1. Notifications not working:

    • Grant notification permissions in app settings
    • Check Android version (requires Android 13+ for runtime permission)
  2. Reminders not firing:

    • Ensure device time is correct
    • Check WorkManager status in system settings

License 📄

This project is open source and available for personal and commercial use.

Contributing 🤝

Feel free to fork, modify, and use this project as you wish!


Built with ❤️ using Kotlin and Jetpack Compose

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages