Immediate utility beats onboarding.
The first launch opens on one concrete activity. A user can act, save, skip, or inspect details before learning anything about the system behind it.

Supporting native iOS product case study
A tactile activity deck for the moment when someone wants to do something but does not know what to search for. Native, local, deterministic, and deliberately smaller than the obvious roadmap.

The product opportunity
The first launch opens on one concrete activity. A user can act, save, skip, or inspect details before learning anything about the system behind it.

Open, react, filter, revisit, relaunch. Each move is represented in persistence and covered by a golden-path test.
No account, location requirement, backend, marketplace, live event feed, or generated activity is needed to prove the idea.
The scope decision that shaped every layer
Engineering decisions
Each decision keeps presentation playful while the underlying state remains explicit, testable, and recoverable.
Save and skip remove cards from the active deck while the bundled catalog remains immutable. Ranking can rebuild the experience without repairing mutated source data.
Catalog loader + pure ranker + presentation state
Saved IDs, skipped IDs, completed IDs, and practical preferences live in one Codable UserDefaults payload that survives relaunch without an account or sync layer.
Fast, private, offline after install
Right-save and left-skip gestures have visible buttons and named VoiceOver actions. Accessibility-size layouts scroll, while Reduce Motion removes the swipe-off animation.
Equivalent controls + adaptive native behavior
Verification rail
50
Fifty unique activities follow the locked schema, balanced category targets, concrete step rules, and explicit safety guidance where needed.
Current product captures
Real iPhone 17e simulator captures. No synthetic dashboard, backend state, or unimplemented social behavior is implied.




Locally verified
Help someone move from an unfocused moment of boredom to one realistic activity without requiring a search query, onboarding, account, location permission, or network connection.
Earlier work remains available for context and does not represent my current technical scope.
Supporting work, specific proof
Endless Activity complements the flagship work with a compact example of native interaction, local architecture, accessibility, and knowing where a version one should stop.