An alarm that can only be switched off by photographing a real object. No snooze button, no swipe — you have to get up and point the camera at something, and on-device recognition with Google ML Kit decides whether you actually did.
- Set the alarm; a local notification is scheduled
- Tapping the notification opens the challenge screen instead of dismissing it
- Take a photo with the camera (or pick from the gallery on desktop)
- ML Kit runs object detection on-device and checks whether a real object is present
- If one is detected, the alarm turns off and tells you what it saw
- If not, it asks you to try again
Detection runs entirely on the device — no image ever leaves the phone.
- Flutter — SDK 3.10.3+
- Dart — primary language
- Google ML Kit Object Detection — on-device object recognition
- flutter_local_notifications — alarm notifications
- image_picker — camera and gallery access
lib/
├── main.dart # Entry point, notification setup
├── screens/
│ ├── home_screen.dart # Main screen with alarm controls
│ └── alarm_screen.dart # Challenge: photo + ML Kit detection
└── services/
└── notification_service.dart # Local notification service
git clone https://github.com/albertfsalapi/alarm-object-detection
cd alarm-object-detection
flutter pub get
flutter runAndroid, iOS, Linux, macOS, Windows.