How it is built
An Apple-native app,
all the way down.
No cross-platform layer, no backend, no third-party dependency to outlive. The app is
Swift, SwiftUI, SwiftData, and the system notification stack.
SwiftData as the whole storage layer
Reminders are modeled and persisted with SwiftData, Apple's then-new
persistence framework, rather than hand-rolled Core Data or a file format of my own.
The list stays in sync with the store, so adding or editing a reminder updates the
screen without separate refresh logic.
Declarative UI in SwiftUI
The list, the add sheet, and the edit sheet are the same declarative components driven
by state. Adding and editing share one form, which is why changing a reminder feels
identical to creating one.
The notification is the product
Everything else is setup. A reminder that does not arrive is a bug with no workaround,
so scheduling and delivery, including how a reminder behaves when it is rescheduled or
deleted before it fires, got the most attention in the build.
Shipped solo, end to end
Concept, interface, data model, notification handling, app icon, and the store
submission were all mine. It is a small app, and that is the point: it does one thing
and it was finished and released rather than left half-built.