
I got sick of ugly, ad-filled 20-20-20 timers that die in the background. I built Blink: a 1.7MB, Material 3 daemon that actually works
The Play Store is overflowing with "eye care" apps that are fundamentally broken. They are bloated with trackers, look like they were designed in 2014, and inevitably get killed by Android’s aggressive battery optimization after 30 minutes.
If you want a 20-20-20 rule timer that actually fires, you have to build a system-level daemon. So I did.
Blink is an entirely open-source, zero-tracker, 1.76MB utility built natively with Kotlin and Jetpack Compose. It doesn't beg the OS for background processing; it uses Exact Alarms and a Foreground Service to survive Doze mode.
I also didn't want a functional app that looked like terminal output. It needs to feel like part of the OS.
Aesthetics & Customization:
True Material 3: It uses dynamic theming to pull colors directly from your system wallpaper.
The Overlay: Instead of a jarring Activity switch that rips you out of your workflow, Blink uses TYPE_APPLICATION_OVERLAY. It floats beautifully on top of whatever you are doing.
3 Visual Styles: I built custom 60fps Compose animations for the rest screen. You can choose between Expressive (animated rings/ripple waves), Calm (smooth arcs), or Minimal (clean progress circle).
Granular Control: You can adjust the overlay opacity (30–100%), tweak the work/rest intervals (1-60m / 10-60s), and choose whether you want the overlay, a notification, or both.
The Power-User Feature:
For people who despise Android's battery throttling, I integrated Shizuku. If you have it enabled, Blink uses the Shizuku IPC bridge to silently execute cmd deviceidle whitelist on itself. It grants itself immunity from Doze mode without you ever opening the settings app.
It’s completely free. The code is clean, native, and aggressive about doing exactly what it's supposed to do.
GitHub (Releases & Source):