Skip to content

πŸ“± Modern Todo App built with Flutter & Riverpod | Cross-platform: macOS, Android & Web

Notifications You must be signed in to change notification settings

sagarshende23/riverpod-todo-app

Repository files navigation

Flutter Todo App

A modern, feature-rich Todo application built with Flutter, showcasing best practices in mobile app development.

Deploy to Github Pages Android Release macOS Release

⚑ Try it Now!

Try Web Version Download Android Download macOS

🌐 Live Demo

Live Demo

πŸ“± Screenshots

Todo App Screenshot 1 Todo App Screenshot 2 Todo App Screenshot 3
Todo App Screenshot 4 Todo App Screenshot 5 Todo App Screenshot 6

πŸ“₯ Try the App

✨ Features

  • πŸ“± Clean, modern UI with Material Design 3
  • πŸ–₯️ Cross-platform support (Web, Android, macOS)
  • 🎨 Dynamic theme support (Light/Dark mode)
  • πŸ’Ύ Local persistence using Hive
  • πŸ“Š Task grouping and organization
  • ↩️ Undo/Redo support for actions
  • ⚑ Fast and responsive animations
  • πŸ”„ State management with Riverpod

πŸ› οΈ Built With

Flutter Dart Material Design GitHub Actions GitHub Pages

πŸ“± Downloads

Get the latest version of the app:

πŸ–₯️ Desktop & Web

Download for macOS Open Web Version

πŸ“± Android Versions

Download arm64-v8a Download armeabi-v7a Download x86_64

πŸ“ Version Information

Platform Architecture Devices
Android arm64-v8a Most modern Android devices (2017+)
Android armeabi-v7a Older Android devices
Android x86_64 Android emulators & Chrome OS
macOS Universal Apple Silicon & Intel Macs
Web All Any modern web browser

πŸ”§ Installation & Setup

  1. Clone the repository
git clone https://github.com/sagarshende23/riverpod-todo-app.git
  1. Get Flutter packages
flutter pub get
  1. Run the app
flutter run

🌐 Web Deployment

This app is automatically deployed to GitHub Pages using GitHub Actions. The deployment workflow:

  1. Triggers on push to main branch
  2. Sets up Flutter environment
  3. Enables web support
  4. Builds the web app
  5. Deploys to GitHub Pages

To deploy to your own GitHub Pages:

  1. Fork this repository
  2. Go to repository Settings > Pages
  3. Set Source to "GitHub Actions"
  4. Push changes to main branch
  5. Check Actions tab for deployment status
  6. Access your app at https://sagarshende23.github.io/riverpod-todo-app

Architecture

The app follows a feature-first architecture with clean separation of concerns:

lib/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ common/
β”‚   β”‚   β”œβ”€β”€ constants/
β”‚   β”‚   β”œβ”€β”€ providers/
β”‚   β”‚   └── theme/
β”‚   └── features/
β”‚       └── todo/
β”‚           β”œβ”€β”€ domain/
β”‚           β”‚   └── models/
β”‚           β”œβ”€β”€ presentation/
β”‚           β”‚   β”œβ”€β”€ providers/
β”‚           β”‚   β”œβ”€β”€ screens/
β”‚           β”‚   └── widgets/
└── main.dart

Technologies Used

  • Flutter
  • Riverpod for state management
  • Hive for local storage
  • Material Design 3

Getting Started

  1. Prerequisites

    • Flutter (latest version)
    • Dart SDK
    • Android Studio / VS Code
  2. Installation

    # Clone the repository
    git clone https://github.com/sagarshende23/riverpod-todo-app.git
    
    # Navigate to project directory
    cd riverpod-todo-app
    
    # Get dependencies
    flutter pub get
    
    # Run the app
    flutter run
  3. Build

    # Generate Hive adapters
    flutter pub run build_runner build --delete-conflicting-outputs

Dependencies

flutter_riverpod: ^2.4.9
hive: ^2.2.3
hive_flutter: ^1.1.0

Features in Detail

Task Management

  • Create, update, and delete tasks
  • Mark tasks as complete/incomplete
  • Group tasks by category
  • Undo deleted tasks

UI/UX

  • Smooth animations
  • Intuitive gestures
  • Responsive design
  • Error handling with user feedback

Data Persistence

  • Local storage using Hive
  • Automatic state persistence
  • Fast data access

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Flutter team for the amazing framework
  • Riverpod for state management
  • Hive for local storage solution