Apple Fitness workout fixer + Strava uploader

Add README with screenshots and feature documentation

- Screenshots of workout list and detail view side by side
- Document all features: search, sort, pagination, trimming
- Highlight destructive nature of workout trimming with data loss details

+52
+52
README.md
···
··· 1 + # Overrun 2 + 3 + An iOS app for trimming and managing HealthKit workouts. Built for the common problem of forgetting to stop recording — leaving you with an 8-hour "run" that wrecks your stats. 4 + 5 + <p align="center"> 6 + <img src="screenshots/list.png" width="280" alt="Workout list grouped by month" /> 7 + &nbsp;&nbsp;&nbsp;&nbsp; 8 + <img src="screenshots/detail.png" width="280" alt="Detail view showing a forgot-to-stop workout" /> 9 + </p> 10 + 11 + ## Features 12 + 13 + ### Workout List 14 + - Workouts grouped by month/year with section headers 15 + - **Search** by activity type name (case-insensitive) 16 + - **Sort** by date (default), longest duration, or shortest duration — useful for quickly finding forgot-to-stop workouts or accidental recordings 17 + - Paginated loading (50 at a time) with infinite scroll 18 + - Pull-to-refresh 19 + 20 + ### Workout Detail & Trimming 21 + - **Activity graph** showing heart rate, active energy, or distance over time (auto-selects the best available metric) 22 + - **Range slider** to visually select the portion of the workout to keep 23 + - Dimmed overlay on the graph showing which portions will be trimmed 24 + - Live-updating start time, end time, and duration display 25 + - **Activity type picker** with 20 supported workout types 26 + - **Delete workout** with confirmation 27 + 28 + ### Data Warning 29 + 30 + > **Trimming a workout is destructive and irreversible.** 31 + > 32 + > HealthKit does not allow modifying a workout's start/end dates in place. When you trim a workout, Overrun **deletes the original workout and creates a new one** with the trimmed time range. This means: 33 + > 34 + > - **Heart rate, energy, and distance samples** become orphaned — they remain in HealthKit but are no longer associated with any workout. The new trimmed workout has no linked samples. 35 + > - **Workout routes** (GPS/location data) are permanently lost. 36 + > - **Workout events** are permanently lost. 37 + > - **Device association** is lost. 38 + > - Only **metadata** (custom name, notes, etc.) is preserved. 39 + > 40 + > The app shows a confirmation dialog before saving. Make sure you want to proceed. 41 + 42 + ## Requirements 43 + 44 + - iOS 17+ 45 + - Xcode 15+ 46 + - HealthKit entitlement 47 + 48 + ## Building 49 + 50 + Open `WorkoutEditor.xcodeproj` in Xcode and run on a device or simulator. The app requires HealthKit authorization to read and write workouts and associated samples. 51 + 52 + In debug builds, 200 sample workouts are auto-generated on first launch for testing.
screenshots/detail.png

This is a binary file and will not be displayed.

screenshots/list.png

This is a binary file and will not be displayed.