rzen f2da47a70a Keep the screen awake during workouts; fix watch timers freezing
- iPhone: disable the idle timer while the exercise detail screen is open,
  so the display no longer sleeps mid-set.
- Watch: the work/rest timers counted on a run-loop Timer that watchOS
  throttles in the Always-On (wrist-down) state, so they froze. Anchor both
  to a wall-clock Date rendered with SwiftUI's self-updating timer text;
  rest haptics + auto-advance now derive from the end time so they catch up
  after a stall instead of stalling.
2026-06-20 12:00:34 -04:00
2026-06-19 19:30:09 -04:00

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).

S
Description
No description provided
Readme 6.8 MiB
Languages
Cython 89.4%
Swift 10.3%
HTML 0.2%
Shell 0.1%