Skip to content

DRMap/VitalsSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vitals Sync

Vitals Sync is a native iOS SwiftUI app for moving personal vitals from Apple Health into Garmin Connect. It reads weight and blood pressure measurements from HealthKit, checks Garmin Connect for matching records in the selected month, and lets the user upload only measurements that are not already present.

The app runs entirely on-device. It does not use an intermediate server, external database, or cloud sync service.

Features

  • Reads weight and blood pressure data from Apple Health.
  • Lets the user review one calendar month at a time.
  • Compares Apple Health measurements with Garmin Connect records before upload.
  • Labels measurements as new, uploaded, or conflicting based on Garmin data.
  • Uploads selected new measurements to Garmin Connect.
  • Stores Garmin session data only in the iOS Keychain.
  • Includes unit tests for Garmin parsing and duplicate detection behavior.

Privacy

Vitals Sync is designed to keep data local to the user's device.

  • Health data is read directly from Apple Health using HealthKit.
  • Garmin authentication/session data is stored in the iOS Keychain.
  • No personal health data is sent anywhere except Garmin Connect when the user chooses to upload it.
  • The project does not include analytics, tracking SDKs, or a backend service.

Garmin Connect Notice

Garmin Connect does not provide a public consumer API for this use case. Vitals Sync uses private Garmin Connect endpoints observed from Garmin's own clients, including endpoints for weight and blood pressure data.

That means:

  • Garmin can change or remove these endpoints at any time.
  • Sign-in may be rate-limited by Garmin.
  • Upload or lookup behavior may break without notice.
  • This project is experimental and intended for personal use.

Use it at your own risk and respect Garmin's terms of service.

Requirements

  • macOS with Xcode
  • iOS 18 or later
  • An Apple Developer account with HealthKit capability enabled
  • A Garmin Connect account
  • HealthKit permissions for weight and blood pressure

Building

Open the checked-in Xcode project:

open "Vitals Sync.xcodeproj"

Then select the VitalsSync scheme and run on an iPhone. HealthKit access is only useful on a real device with Apple Health data.

The project was generated from project.yml, but the .xcodeproj is checked in so XcodeGen is not required for normal development.

Tests

Run the unit tests from Xcode, or with xcodebuild:

xcodebuild test -project "Vitals Sync.xcodeproj" -scheme VitalsSync -destination "platform=iOS Simulator,name=iPhone 16"

App Icon

The app icon is generated by:

swift Tools/generate_app_icon.swift

The generated asset is stored in VitalsSync/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png.

Status

This is an early personal project. The core workflow is implemented, but Garmin compatibility should be treated as fragile because it depends on private endpoints.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages