Mobile App

Using the TrainStack mobile app.

How to install the iOS app, grant HealthKit permissions, and understand how background sync keeps your data up to date.

Installation

Get the app

The TrainStack iOS app is available through TestFlight during the beta period. Once released, it will be available on the App Store. Requires iOS 16 or later (iPhone 8 and newer).

Sign in

Open the app and sign in with the same account you use on the web. Your athlete profile, connected integrations, and equipment all sync across devices.

Grant HealthKit permissions

The app will prompt you to grant access to Apple HealthKit. This is how TrainStack reads workout data, heart rate, sleep, HRV, and other health metrics from your Apple Watch and iPhone.

Read-only access

TrainStack requests read-only access to HealthKit. We never write to or modify your Apple Health data.

Initial sync

After granting permissions, the app performs an initial sync of your recent HealthKit data. This includes workouts, heart rate samples, sleep analysis, and daily metrics. The first sync may take a few minutes depending on how much data is available.

HealthKit Permissions

The app requests read access to the following HealthKit data types:

Data TypeWhat TrainStack Uses It For
WorkoutsActivity tracking -- every workout type Apple Health records
Heart RateTime-series HR data for activities and resting HR trends
Heart Rate VariabilityHRV tracking for recovery and readiness
Sleep AnalysisSleep sessions with stage data (deep, REM, light, awake)
StepsDaily step counts
Active EnergyCalorie tracking for activities
DistanceWalking, running, and cycling distance
Resting Heart RateDaily resting HR trends
VO2 MaxCardio fitness estimates
Respiratory RateBreathing rate during sleep
Blood OxygenSpO2 readings

You can review and modify these permissions at any time in iOS Settings > Health > TrainStack.

Background Sync

TrainStack uses HealthKit observer queries to stay up to date without you having to open the app.

How it works

When new data appears in HealthKit (e.g., you finish a run on your Apple Watch), iOS notifies TrainStack in the background. The app wakes up briefly, reads the new data, and sends it to the TrainStack backend.

Battery impact

Background sync is designed to be battery-efficient. Observer queries are managed by iOS and only fire when relevant data changes. The app itself does minimal work -- it reads the new samples and uploads them in a single batch. Typical battery impact is negligible.

Sync frequency

  • After workouts: New activities sync within minutes of completion
  • Health samples: Heart rate, HRV, and other continuous data syncs periodically throughout the day
  • Sleep: Sleep sessions sync after you wake up, once Apple Health has finalized the session

Manual sync

You can trigger a manual sync at any time by opening the app and pulling down on the activity feed. This is useful if you want to verify that a recent workout has been uploaded.

On this page