Dose
Medication reminders designed for older eyes
A native iOS app for a pharmacy chain that helps patients over 65 take the right pill at the right time. Built in SwiftUI with accessibility as the primary requirement, not a checklist at the end.
Good morning, Amina
Next dose at 10:00
Metformin
500 mg, 1 tablet
with breakfast
Later today
- 13:00Vitamin D, 1 capsule
- 21:00Atorvastatin, 20 mg
- 4.8
- App Store rating, 2,300 reviews
- 91%
- doses logged on time, month 3
- AX5
- largest Dynamic Type, fully supported
The problem
Patients on five or more medications miss doses often, and the chain’s existing app buried reminders three screens deep behind a login.
Constraints
- Must be usable at the largest accessibility text size and with VoiceOver.
- Reminders must fire even if the app has not been opened in weeks.
- Health data cannot leave the device without explicit consent.
How it fits together
On the device
- SwiftUI views
- Core Data store
- Rolling notification planner
- watchOS companion
In the cloud
- CloudKit private database
- HealthKit, with consent
- Shareable PDF reports
Key decisions
Layouts that reflow, not shrink
Every screen switches from rows to stacked layouts at accessibility sizes. We tested each screen at AX5 with VoiceOver on, with patients, before it was merged.
Notifications scheduled from a rolling window
iOS caps pending notifications at 64. A background task keeps the next 7 days scheduled and re-plans whenever a prescription changes.
Private by default
Data lives in Core Data and syncs only through the user’s own iCloud via CloudKit. The pharmacy never sees dose history unless the patient shares a report.
Outcome
Featured by Apple in an accessibility collection. On-time dose logging reached 91% by month three, and pharmacy refill calls dropped by a third.
What I’d change
The watch app was an afterthought and it shows. Half of daily check-ins now happen on the wrist, and it deserved the same design attention.
Stack
- Swift
- SwiftUI
- HealthKit
- WidgetKit
- Core Data
- CloudKit