A complete Alarm Clock application built with Flutter, following Clean Architecture and modern Material 3 design principles.
- Alarm Management: Create, edit, delete, and toggle alarms.
- Repeat Options: Set alarms for specific days of the week.
- Alarm Ring Screen: Full-screen overlay with snooze and dismiss options.
- World Clock: View current time across different time zones.
- Stopwatch: Precise timing with lap tracking.
- Timer: Countdown timer with notification support.
- Modern UI: Material 3 design with responsive layouts and dark mode.
- Framework: Flutter
- State Management: Riverpod
- Navigation: GoRouter
- Local Storage: Hive
- Alarms:
alarmpackage - Notifications:
flutter_local_notifications - Utilities:
timezone,intl,permission_handler
The project is organized into layers:
- Core: Services, constants, theme, and common widgets.
- Features: Modular features (alarms, stopwatch, etc.) each with its own domain, data, and presentation layers.
- Routes: Navigation configuration.
- App: Main application widget and entry point.
- Clone the repository.
- Add assets: Place an alarm sound file at
assets/audio/alarm.mp3. - Install dependencies:
flutter pub get
- Platform Specific Setup:
- Android: Ensure
AndroidManifest.xmlhas the required permissions and services (already configured in this project). - iOS: Enable "Background Modes" (Audio, Fetch) in Xcode.
- Android: Ensure
- Run the app:
flutter run
To regenerate Hive adapters (if modified):
flutter pub run build_runner build --delete-conflicting-outputs