This Flutter Todo application demonstrates a modern, modular approach to mobile development using the Feature Slice Design pattern. The app allows users to manage todos with different priority levels, types, and deadlines. It features a clean, intuitive UI (kinda) with color-coded todo items, filtering and searching capabilities, and infinite scroll pagination. The architecture employs BLoC for state management, providing a clear separation of concerns between UI, business logic, and data layers. Data persistence is implemented using Hive for offline capability, allowing the app to function even without network connectivity. The app showcases best practices, efficient API usage through local-first data fetching, and responsive design principles.
- ⭐ Feature 1: Display all TODOS in a list view with inifinite scroll.
- ⭐ Feature 2: Colour code the TODO based on its TYPE.
- ⭐ Feature 3: Search TODOs based on title.
- ⭐ Feature 4: Ability to complete a TODO.
- ⭐ Feature 5: Supports offline mode, utilizing HIVE for Local Storage.
- ⭐ Feature 6: Optimized performance to check Local Storage for data before going to the server.
- 🔷 Flutter - UI framework for cross-platform development
- 🧩 Feature Slice Design - Architectural pattern for organizing code
- 📦 Hive - Fast, lightweight local database for Flutter
- 🔄 BLoC Pattern - State management solution
- 📱 flutter_bloc - Implementation of the BLoC pattern
- 🌐 HTTP - For API calls and data fetching
- 🎨 Material Design - UI design language and component library
- 🔍 Equatable - Simplifies equality comparisons in Dart
- 💻 Build Runner - Code generation tool
- 📊 Hive Generator - For generating Hive type adapters
- 🎯 Dart - Programming language used for Flutter development



- 🖌️ 1: Introduce Theming.
- 🎨 2: Implement UI Feedback to the User when a Save or Error has occured
- 🧪 3: Make the tests more meaningful.
- 🛠️ 4: Fix deprecated warnings in the console.
- Flutter:
^3.7.2
- Dart:
3.5.3
- Clone the repository:
git clone https://github.com/Scott-Atkinson/coin_gecko run flutter clean run flutter pub get
This project uses environment variables for configuration. Follow these steps:
- Copy
.env.example
to a new file called.env
- Fill in your API key and other configuration values
- Run
flutter run