Skip to content

iJustinn/Body

Repository files navigation

Body

Body app icon

Body is a privacy-focused iOS health visualization app built with SwiftUI. It turns Apple Health workouts, Activity Rings, Recovery, sleep, energy, body measurements, daylight, steps, and vitals into a local-first app and widget experience.

Current app version: 0.5.6 (build 2)

Screenshots

Body screenshot 1 Body screenshot 2 Body screenshot 3

Body screenshot 4 Body screenshot 5 Body screenshot 6

Features

  • Summary tab - Activity Rings card plus health cards for Recovery, Exercise Minutes, Wrist Temperature, Daylight, Steps, Sleep, Basics (body fat/weight/BMI), heart rate, Training Load, HRV, blood oxygen, respiratory rate, and energy. Each card includes a four-day preview chart and an About explainer. Detail screens support Week/Month/6 Months/Year ranges.
  • Recovery - Recovery score based on personal baselines for sleep, heart, training load, respiratory, blood oxygen, and wrist temperature signals, with status bands, component scores, confidence, and driver explanations.
  • Two-source comparison - Supported metrics (Sleep, Heart Rate, Resting Heart Rate, HRV, Blood Oxygen, Steps, Active Energy, Resting Energy, Exercise Minutes) can overlay a secondary Apple Health source alongside the primary. Primary and secondary share x-axis buckets, the legend lists each source's average, and the picker hides whichever source is already in use as the other slot to prevent duplicate series.
  • Workouts tab - Searchable workout history with month browsing, sort, type filters, summary totals, an in-app workout calendar, and a workout type breakdown with monthly totals.
  • Sleep detail - Today's sleep score, stage timeline, Apple-style Sleep Vitals chart, and range trend chart.
  • Pull-to-refresh feedback - Summary, metric detail, and Workouts each show a "Loading data..." overlay during pull-to-refresh that stays on screen until the underlying HealthKit refresh actually finishes, including waiting for any background sync already in flight.
  • Widgets - Large workout calendar widget (monthly tiles using SF workout icons, with star/moon/sun count markers) and large workout types widget (percentage-bar breakdown by type). System, Black, and White background choices.
  • Apple Health sync - Read-only access to workouts, activity rings, sleep, heart, body measurements, energy, daylight, steps, exercise minutes, and wrist temperature. Workout summaries and dashboard snapshots are written to App Group storage for widgets.
  • Settings - Appearance, Units, app icon selection, Data > Permissions to hide categories from the dashboard, and About rows.
  • Local-first - Widgets read a cached JSON snapshot from the app group; they do not query HealthKit directly. A May 2026 seed snapshot keeps the UI useful before authorization. The dashboard cache invalidates stale secondary-source series automatically when the user changes a comparison source between launches.

Requirements

  • iOS 18.0+
  • Xcode 26.4+
  • Swift 5 language mode
  • Apple Health read permission

Installation

  1. Open body.xcodeproj in Xcode.
  2. Select the Body scheme.
  3. Build and run on an iPhone simulator or device.
  4. On a real device, pull down on the Summary tab to refresh and grant Apple Health access.

Project Structure

Body/
├── Body/                  # SwiftUI app and HealthKit workout ingestion
├── BodyShared/            # Shared workout models, snapshot storage, and calendar UI
├── BodyWidgetExtension/   # WidgetKit calendar widget
├── BodyTests/             # Unit and configuration tests
└── body.xcodeproj/        # Xcode project and shared schemes

Privacy

Body reads Apple Health data only after permission is granted. Users can hide categories in Settings > Data > Permissions without changing system-level authorization. Workout summaries are stored locally and mirrored to the widget through the app group's shared UserDefaults. Body does not collect tracking data.

Documentation

License

Body is source-available, not open source. The code is public for transparency and personal, non-commercial evaluation only. Commercial use, redistribution, App Store/TestFlight/enterprise distribution, derivative app publishing, sublicensing, and reuse of Body branding/assets are prohibited without prior written permission.

See LICENSE for the full Body Source-Available License. Third-party notices are in THIRD_PARTY_NOTICES.md.

About

Health data visualization app.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages