Back to Projects
Mobile

Todo App with Flutter and Riverpod

Todo App with Flutter and Riverpod

Tech Stack

FlutterDartRiverpodState Management

Overview

This Todo app is a clean implementation of task management built with Flutter and Riverpod for state management. It goes beyond a basic todo list — supporting full CRUD operations, task categorization with color-coded labels, priority levels, due dates with overdue highlighting, swipe-to-complete and swipe-to-delete gestures, and persistent local storage. The architecture follows Riverpod best practices with StateNotifierProvider for the todo list, separate providers for filtered/sorted views, and proper dependency injection throughout. The project serves as a reference implementation for Riverpod state management patterns, demonstrating how to structure a real-world Flutter app with reactive state, derived state, and side effects handled cleanly.

Challenges

  • Structuring Riverpod providers correctly to support multiple derived views (filtered by category, sorted by priority, search results) from a single source of truth
  • Implementing smooth swipe gestures for complete/delete actions with undo capability, without conflicting with the list's scroll behavior

Solutions

  • Created a layered provider architecture: a core StateNotifierProvider holds the canonical todo list, with separate Provider instances for each filtered/sorted view that automatically recompute when the source changes
  • Used Dismissible widget with custom background builders for swipe actions, combined with a SnackBar-based undo system that temporarily holds deleted items and restores them if undo is tapped before timeout

Results

State management demonstration using Riverpod