Case study

RepTrack

Workout logging where each screen earns its place: SwiftUI, SwiftData, no login wall for core use.

I defined the flows, built the models (workout / exercise / set), shipped the UI, and filed the App Store build, including listing copy and required assets.

Live on the App Store

Stack

SwiftUI · SwiftData

iOS 17+, Xcode, on-device persistence

Context

One-handed use

Short sessions, bright rooms, interruptions between sets

Snapshot

What & why

Training apps often optimize for screenshots. This one optimizes for Tuesday leg day.

Problem: between sets you need one-tap logging and an instant read on what you lifted last time, not feeds, badges, or config.

Product: RepTrack is a structured log: dated workouts, ordered exercises, sets with reps and weight. SwiftData holds the graph locally; SwiftUI keeps the path from “open app” to “log set” short.

Scope

What I built

Concrete deliverables, not a roadmap slide.

01

Flows

New workout (date), add exercises, log sets/reps/weight, return to dashboard without dead ends.

02

SwiftData

Entities and relationships aligned to how lifters think: workout contains exercises; exercises contain sets.

03

UI

System fonts, standard navigation, lists and forms that stay readable under gym lighting.

04

App Store

Icons, privacy strings, version/build hygiene, and submission through Connect: same attention as the code.

Tools

Tech stack

SwiftUI SwiftData iOS Xcode App Store Connect

Everything on Apple’s stack for this v1: no experimental framework debt. Omission mattered: every extra screen was a tax on a tired user holding a phone with one hand.

For recruiters

What this demonstrates

Capabilities evidenced by this project

  • You can hand me “ship a consumer iOS v1” and get binaries plus store paperwork
  • Native data modeling that matches the domain, not a tutorial schema
  • UX judged against a hostile context (time, light, attention), not a desk
  • Same quality bar I apply to SQL/Snowflake work: correct, explainable, operable

Showcase

Product frames

Swipe the carousel or tap a thumbnail: the order follows the real user path.

Outcome

Status

Release

App Store live

RepTrack is now published and available for download.

Next

After launch

Iterate from real sessions: smarter defaults, not feature creep.

← Back to portfolio