Android battery alarm
Battery Guard
Rings an alarm when your phone reaches the charge level you choose, so you unplug in time.
- Role
- Solo developer, from design handoff to a signed release build
- Status
- Prepared for Google Play closed testing
- Stack
- Flutter, Dart, Kotlin, flutter_bloc, Foreground services, Home-screen widgets

Results
- internet permissions requested
- 0
- alarm sounds, with snooze
- 4
- native home-screen widget sizes
- 2
01Problem
Leaving a phone on the charger past full wears the battery down, and Android's background limits stop most apps from alerting reliably once they are closed.
02Architecture
A Flutter app with flutter_bloc, on top of a native `specialUse` foreground service that watches the battery with the app closed and starts again after a reboot. Alarm-stream audio and wake locks make alarms and snooze timers fire on time. The 2×1 and 2×2 home-screen widgets are rendered in Kotlin and updated from the battery receiver.
03Key decision
Shipping with no internet permission, so no data can leave the phone. The security review also found a fake-alarm vulnerability where another app could open the alarm screen; launch intents are now sanitized and routes are guarded.
04Result
A signed, obfuscated release build with an automated release-check script, prepared for Google Play closed testing. Alarms ring over the lock screen, and a Test alarm confirms the setup in 5 seconds.
Screens


