A sophisticated Flutter-based Task Management Application built with modern architecture patterns and best practices. This app demonstrates advanced Flutter development skills, clean architecture implementation, and efficient local data persistence using Hive database.
- π Complete CRUD Operations - Create, Read, Update, and Delete tasks seamlessly
- π― Priority Management - Three-tier priority system (High, Medium, Low) with visual indicators
- π Date & Time Management - Intuitive date/time pickers with formatted display
- β Task Completion Tracking - Visual completion status with animated transitions
- ποΈ Smart Deletion - Swipe-to-delete functionality with confirmation dialogs
- π¨ Modern UI/UX - Beautiful animations, gradients, and responsive design
- πΎ Local Data Persistence - Fast and reliable Hive database integration
- π Real-time Updates - Reactive UI with ValueListenableBuilder pattern
lib/
βββ π data/ # Data Layer - Hive Database Operations
βββ π models/ # Domain Models with Hive Annotations
βββ π utils/ # Utility Classes (Colors, Strings, Constants)
βββ π view/ # Presentation Layer
β βββ π home/ # Home Screen & Widgets
β βββ π tasks/ # Task Creation/Editing Screens
βββ main.dart # App Entry Point with Dependency Injection
- InheritedWidget Pattern for dependency injection
- ValueListenableBuilder for reactive UI updates
- Custom BaseWidget for global state access
- Hive Database for lightweight, fast local storage
- Type-safe Adapters with code generation
- Automatic data cleanup (removes tasks from previous days)
- Custom Theme System with comprehensive text themes
- Animated Transitions using
animate_dopackage - Lottie Animations for empty states
- Material Design 3 principles
- Responsive Layout with proper constraints
- Flutter 3.6.1+ - Cross-platform UI framework
- Dart - Programming language
- Hive 1.1.0 - Lightweight NoSQL database
dependencies:
hive_flutter: ^1.1.0 # Local database
uuid: ^3.0.5 # Unique ID generation
intl: ^0.17.0 # Internationalization
animate_do: ^2.1.0 # Smooth animations
lottie: ^1.4.0 # Vector animations
flutter_datetime_picker_plus: ^2.1.0 # Date/time selection
flutter_beautiful_popup: ^1.7.0 # Custom dialogs
panara_dialogs: ^0.1.2 # Beautiful dialog system
ftoast: ^2.0.0 # Toast notifications- build_runner - Code generation
- hive_generator - Hive adapter generation
- flutter_lints - Code quality enforcement
- Flutter SDK 3.6.1 or higher
- Dart SDK
- Android Studio / VS Code with Flutter extensions
-
Clone the repository
git clone https://github.com/yourusername/hive-task-manager-app.git cd hive-task-manager-app -
Install dependencies
flutter pub get
-
Generate Hive adapters
flutter packages pub run build_runner build
-
Run the application
flutter run
@HiveType(typeId: 0)
class Task extends HiveObject {
@HiveField(0) final String id;
@HiveField(1) String title;
@HiveField(2) String subtitle;
@HiveField(3) DateTime createdAtTime;
@HiveField(4) DateTime createdAtDate;
@HiveField(5) bool isCompleted;
@HiveField(6) int priority;
factory Task.create({...}) => Task(
id: const Uuid().v1(),
// ... other parameters
);
}class HiveDataStore {
static const boxName = "tasksBox";
final Box<Task> box = Hive.box<Task>(boxName);
Future<void> addTask({required Task task}) async {
await box.put(task.id, task);
}
ValueListenable<Box<Task>> listenToTask() {
return box.listenable();
}
}ValueListenableBuilder(
valueListenable: base.dataStore.listenToTask(),
builder: (ctx, Box<Task> box, Widget? child) {
var tasks = box.values.toList();
// UI updates automatically when data changes
}
)theme: ThemeData(
textTheme: const TextTheme(
displayLarge: TextStyle(color: Colors.black, fontSize: 45),
titleMedium: TextStyle(color: Colors.grey, fontSize: 16),
// ... comprehensive text theme
),
)Run the test suite:
flutter testflutter build apk --releaseflutter build ios --release- Primary:
#4568dc(Blue) - Secondary:
#b06ab3(Purple) - Priority Colors:
- High: Red (
#E53935) - Medium: Orange (
#FB8C00) - Low: Green (
#43A047)
- High: Red (
- Comprehensive text theme with 8 different text styles
- Consistent font weights and sizes
- Proper color contrast ratios
The app includes a custom launcher icon configured in pubspec.yaml:
flutter_icons:
android: true
ios: true
image_path: "assets/icon/app_icon.png"assets/
βββ icon/ # App launcher icons
βββ img/ # Screenshots and images
βββ lottie/ # Animation files
- Efficient List Rendering with
ListView.builder - Memory Management with proper controller disposal
- Optimized Animations using
AnimatedContainer - Lazy Loading for better performance
- Automatic Data Cleanup to prevent storage bloat
- β Advanced Widget Composition
- β Custom State Management
- β Reactive Programming Patterns
- β Material Design Implementation
- β Animation & Transition Design
- β Performance Optimization
- β Clean Architecture Principles
- β Separation of Concerns
- β Dependency Injection
- β SOLID Principles
- β Code Organization & Structure
- β Local Database Integration
- β Type-safe Data Models
- β CRUD Operations
- β Data Validation
- β Error Handling
- β Modern Material Design
- β Responsive Layout Design
- β Accessibility Considerations
- β User Experience Optimization
- β Visual Feedback Systems
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
β Star this repository if you found it helpful!
Made with β€οΈ using Flutter