8c6e798abacd25bf688f1a32124a804df4707fb6
Completing a work phase advances the set count to the iPhone, and a finished set is never un-counted — a transient paged-TabView snap to page 0 can no longer overwrite progress with 0. Reopening an exercise now jumps to the first unfinished set's work page (re-asserted after first layout) instead of starting back at set 1. Claude-Session: https://claude.ai/code/session_018gg69MaUetDNzWzBXisfMV
Workouts
A workout tracking app for iPhone and Apple Watch. Build workout splits, run sessions, and track your progress — with your data stored as plain JSON files in your own iCloud Drive.
Key Features
- Workout splits — organize exercises into reusable routines with custom colors and icons. Start with built-in starter splits (Upper Body / Core / Lower Body) generated from a bundled exercise catalog.
- Exercise library — a bundled catalog of starter exercises (bodyweight and machine-based) to populate your splits.
- Run a workout — start a session from a split, track sets/reps/weight or timed exercises, and mark exercises complete.
- Progress tracking — weight-progression charts per exercise across past sessions.
- Apple Watch companion — starting a workout on the iPhone launches the watch app straight into it; run the session from your wrist as a HIIT cycle: count-up work phases, count-down rests with final-three-second haptics and auto-advance, and One More / Done on the last set. Rest time is configurable; changes sync back to the phone.
- iCloud Drive sync — your data lives as human-readable JSON in your iCloud Drive, synced across devices and visible in the Files app. iCloud is required.
Architecture
iCloud Drive JSON documents are the sole source of truth; a local SwiftData
store is a rebuildable read-through cache populated exclusively by an
NSMetadataQuery observer (one-way flow: files → observer → cache). The phone is
the only device that touches iCloud Drive; the Apple Watch is a thin remote that
round-trips workout changes through the phone via WatchConnectivity.
See REQUIREMENTS.md for the data model and CLAUDE.md for project guidance.
Building
The Xcode project is generated with XcodeGen:
xcodegen generate
open Workouts.xcodeproj
Requires Xcode 26 (iOS 26 / watchOS 26, Swift 6).
Description
Languages
Cython
89.4%
Swift
10.3%
HTML
0.2%
Shell
0.1%