2026Live & in use
Focus Modes
iPhone-style Focus modes for Android 15+. Each mode is a real system Do Not Disturb rule, switched from a Quick Settings tile, a widget or a schedule.
- Role
- Sole developer, building with Claude Code as a pair — feasibility research, zen-rule engine, Quick Settings tile, widget, schedules, and release
- Stack
- Kotlin
- Jetpack Compose
- Glance
- Room
- DataStore
- AutomaticZenRule

Status
Live: a signed v1.0.0 APK on GitHub Releases, for Android 15 and later.
Decisions
Two throwaway diagnostic apps first
Before any product code, two diagnostic apps measured the platform on Xiaomi HyperOS: about 2 ms to flip the tile and about 36 ms to apply a rule.
One idempotent reconciliation loop
A single idempotent ModeEngine reconciliation loop, plus explicit state for the manual-dismissal window, instead of event-driven toggles.
No internet, accessibility or contacts permissions
The app requests zero INTERNET, accessibility or contacts permissions.
What it cost
- Diagnostic apps: two discarded apps, and honest platform limits — starred contacts instead of per-contact allowlists.
- Reconciliation loop: every user-intent rule must be modelled as explicit state.
- Minimal permissions: no crash telemetry and no usage analytics.
Screenshots

