# 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** — start and run workouts from the wrist; 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](https://github.com/yonaskolb/XcodeGen): ```sh xcodegen generate open Workouts.xcodeproj ``` Requires Xcode 26 (iOS 26 / watchOS 26, Swift 6).