A premium Pomodoro & deep work timer built with Flutter. Features custom CustomPainter animations, BLoC state management, Hive local persistence, and a hand-drawn animated stats dashboard.
- State Management: flutter_bloc + Equatable
- Persistence: Hive (local NoSQL)
- Architecture: BLoC pattern (event β state)
- Animations: CustomPainter, AnimationController, Hero transitions
- Platform: iOS + Android (portrait)
# 1. Get dependencies
flutter pub get
# 2. Run the app
flutter runNo API keys, no backend β runs 100% offline.
lib/
βββ main.dart # Entry point, Hive init, BLoC provider
βββ theme/
β βββ app_theme.dart # Color palette, ThemeData
βββ models/
β βββ session_model.dart # Hive model
β βββ session_model.g.dart # Generated adapter
βββ bloc/
β βββ timer_bloc.dart # Business logic
β βββ timer_event.dart # Events
β βββ timer_state.dart # States + SessionType enum
βββ screens/
β βββ timer_screen.dart # Main timer UI
β βββ stats_screen.dart # Weekly stats dashboard
βββ widgets/
βββ timer_painter.dart # CustomPainter arc timer
βββ pulse_ring.dart # Animated pulse rings
βββ stats_chart.dart # Animated bar chart (CustomPainter)
βββ session_type_selector.dart
βββ pomodoro_dots.dart
- Animated circular countdown timer with tick marks and glow effect
- Pulse ring animation when timer is running
- Smooth session type switching (Focus / Short Break / Long Break)
- Pomodoro dot tracker (4 dots per cycle)
- Session history persisted with Hive
- Weekly stats dashboard with animated bar chart
- Streak counter + total focus time
- Haptic feedback on pause/resume/complete
- Slide transition to stats screen