Android Recurring Reminders
A reminder app looks simple until time zones, month ends, process death, permissions, simultaneous schedules, backup recovery, and lock-screen privacy all become part of correctness.
The challenge
Complexity lives in the failure paths
The product needed to remain useful without accounts or an application server, preserve user data across routine failure modes, and be honest about the limits Android places on exact delivery.
System design
Boundaries before components
Product surface
Real interface, real operating states




Key decisions
Tradeoffs made explicit
Local-first by default
Reminder content and schedules live in Room. The app has no account, analytics service, telemetry pipeline, or network-backed application database.
Reconcile instead of assuming
Boot, permission, edit, and restore paths rebuild or verify scheduled alarms. Delivery health tools expose problems rather than silently masking them.
Treat recurrence as domain logic
Weekday rules, interval schedules, month-end clamping, daylight-saving transitions, simultaneous occurrences, and completion tokens are tested as explicit behavior.
Evidence & validation
What can be inspected
- The app supports one-time and repeating schedules, multiple schedules per reminder, agenda and calendar views, tags, checklists, templates, attachments, and a home-screen widget.
- CI runs lint, JVM tests, debug and instrumentation builds, the performance module, and a minified release bundle.
- A managed-device matrix covers phone, tablet, and foldable profiles; UI tests include accessibility labels and 200% font scale.
Outcomes
- Produces a complete daily-use product while keeping user data under explicit device-level control.
- Turns Android delivery constraints into visible health checks, recovery actions, and documented limitations.
Honest limits
- Source is private; this page presents product behavior and architecture rather than inviting a code audit.
- Exact delivery remains best effort when Android revokes access, the app is force-stopped, or the device is powered off.