Apple HealthKit (iOS) and Health Connect (Android, replacing Google Fit) are the two health-data systems most fitness apps read from. They're similar in concept — central permission-gated data stores — but differ on accuracy, what data they include by default, and how multi-app conflicts get resolved.
Step-counting accuracy
Both are accurate to ±3–5% for most adults at normal walking pace. HealthKit is consistently slightly more accurate because Apple controls both the hardware (iPhone or Apple Watch sensor stack) and the SDK end-to-end. Health Connect aggregates from many manufacturers; quality varies — Pixel and Samsung are good, budget Android phones can be ±15%.
What gets recorded by default
HealthKit: every iPhone records steps automatically — no setup needed. Apple Watch records workout-class activity automatically. Health Connect: must be installed from Play Store on Android 13 and earlier (built-in on Android 14+). On Android 14+ with the OS-level "Steps" feature enabled, the OS auto-writes steps; on older devices, you need a writer app like Google Fit or Samsung Health.
Conflict resolution (multi-app data)
Both systems handle multi-source step data with priority lists. HealthKit: user picks priority order per data type in Settings → Health → Data Access & Devices. Health Connect: similar priority UI in the Health Connect app. If two apps write overlapping step data for the same time window, the higher-priority source wins.
Which to trust as a developer / user
For users: trust the OS-level reading over any individual app. For developers: read from HealthKit / Health Connect rather than rolling your own pedometer — the OS sensor fusion is years ahead of what most app-level implementations can do. The @gfn-oss/healthkit-supabase-sync helper is what GFN uses to standardize reads across both platforms.
FAQ
- Will my Health Connect data sync across devices?
- Not automatically — Health Connect data is local-only. Apps that read it can sync to their own backends (which is what GFN does).
- Why does HealthKit and my fitness app show different totals?
- Either the app has its own pedometer running in parallel, or it's reading a different time window. Force-refresh the app or check its source-priority settings.