ProjectCase Study

Endless Activity

A native iOS activity deck for the moment between plans

A local-first SwiftUI product that turns boredom into a quick, realistic choice through a curated swipe deck and practical filters.

Year2026
ExperienceNative iOS build
CategoryNative iOS product craft
SwiftUISwiftiOSAccessibility
Endless Activity Discover deck with a realistic activity and visible save and skip controls
ContextThe work

A quick choice for the moment between plans.

Endless Activity opens directly into a tactile, local-first deck. Save, skip, filtering, and recovery are visible as part of the same interaction, while deterministic ranking keeps the recommendation understandable and private.

01

The problem

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.

02

The user

People between plans or low on ideas who want a fast, private suggestion they can save, skip, filter, and return to later.

03

My role

Independent product direction, native iOS UX, SwiftUI implementation, catalog and ranking architecture, accessibility, testing, and portfolio release preparation

ProofDecisions

The choices that made the product hold together.

01

Opened directly into a

Opened directly into a tactile card deck and made save and skip available as both gestures and visible controls.

02

Separated the immutable bundled

Separated the immutable bundled catalog, pure ranking rules, persisted signals, and presentation deck so interaction state never corrupts source data.

03

Used practical constraints and

Used practical constraints and saved-category signals instead of opaque personalization or generated content.

04

Kept the complete version-one

Kept the complete version-one loop local and deterministic, with explicit recovery for exhausted decks and destructive history reset.

ProcessHow it took shape

From restraint to a dependable loop.

The work moved from a deliberately narrow product promise to deterministic architecture, inclusive interaction, and verified recovery states.

  1. 01

    Protect the smallest useful loop

    I reduced the product to one immediate suggestion, save, skip, practical filters, and a durable Saved list. Accounts, location, live events, booking, and generated content stayed outside version one.

  2. 02

    Make the catalog deterministic

    I defined a 50-activity schema, validation rules, pure eligibility filters, transparent preference boosts, and seeded ordering so the deck could vary without becoming opaque or difficult to test.

  3. 03

    Prototype the gesture as a system

    The swipe interaction was built with threshold and velocity commits, spring-back cancellation, visible Save and Skip controls, haptics, named VoiceOver actions, and Reduce Motion behavior.

  4. 04

    Finish the recovery paths

    I treated exhausted decks, filter conflicts, saved removal, destructive reset, relaunch persistence, large text, and dark appearance as part of the core experience rather than cleanup work.

ScreensSelected work

The interface, in context.

Endless Activity Discover activity deck
The app opens on one concrete activity with visible alternatives to the swipe gesture.
Endless Activity activity detail view
The native detail sheet adds materials, steps, and safety guidance only when needed.
Endless Activity saved activity collection
Saved activities remain a useful return path instead of disappearing into a feed.
Endless Activity preference controls
Practical filters shape the deck without turning first launch into onboarding.
ReleaseProof and boundaries

What the build makes visible.

Verification

  • Fifty bundled activities pass unique ID, unique title, schema, tagging, step-count, and content-quality validation.
  • Twelve unit tests and seven UI tests passed again on 8 September 2026 on the iPhone 17e simulator, covering ranking, persistence, swipes, details, filters, Saved, and relaunch state.
  • The current large-device build passes on iPhone 17 Pro Max, with visual checks across the core flow in light and dark appearance.

Limitations

  • The project is a polished local MVP and portfolio proof point, not an App Store release or evidence of real-world retention or recommendation quality.
  • Accounts, cloud sync, live events, required location, booking, payments, social planning, and AI-generated activities are intentionally outside version one.
  • Physical haptic feel and spoken VoiceOver quality still require device-level review before a distribution claim.
MoreCurrent case studies

Explore the other current projects where product thinking is carried through interface, architecture, testing, and release.