Device Features· 5 min read

HealthKit and Health Connect in React Native

Integrate Apple HealthKit and Android Health Connect in React Native: libraries, permissions, reading and writing data, privacy rules and Google Fit's end.

By

Full-Stack, Mobile & AI Engineer

Fitness and wellness apps are expected to "talk to Health": read steps and workouts, write completed sessions, show heart rate from a watch. Users love it when it works, and it builds trust that their data isn't trapped. It's also one of the most privacy-sensitive integrations an app can have, with rules on both platforms about what you may read, store and do with the data.

This guide covers React Native HealthKit and Health Connect integration in 2026: which libraries to use, how permissions behave, reading and writing data, the privacy rules on each store, and what replaced Google Fit.

Key takeaways

  • iOS uses HealthKit; React Native libraries such as @kingstinct/react-native-healthkit or react-native-health wrap it.
  • Android uses Health Connect, the platform's central health data store, through libraries such as react-native-health-connect.
  • Google has deprecated the Google Fit APIs in favour of Health Connect, so new Android integrations should target Health Connect.
  • Permissions are granted per data type, and on iOS your app can't tell whether read access was denied.
  • Health data has strict rules: no advertising use, clear purpose, privacy policy explanations, and declarations in Google Play Console.

The platforms at a glance

Apple HealthKitAndroid Health Connect
Where data livesOn the device, in the Health app's encrypted storeOn the device, in Health Connect
PermissionsPer data type, read and write separatelyPer data type, read and write separately
SetupHealthKit capability and usage descriptionsManifest permissions, privacy rationale screen, Play Console declaration
React Native libraries@kingstinct/react-native-healthkit, react-native-healthreact-native-health-connect
ExpoDevelopment build with config pluginsDevelopment build with config plugins

Setting up on iOS

  1. Enable the HealthKit capability for your app (through a config plugin in Expo).
  2. Add usage descriptions: NSHealthShareUsageDescription (reading) and NSHealthUpdateUsageDescription (writing), explaining the benefit in plain language.
  3. Request authorisation for specific data types when the user turns on the feature, for example steps, workouts and heart rate.

A quirk that surprises everyone: for privacy, HealthKit doesn't tell your app whether the user denied read access. A denied read simply returns no data. Design your UI so "no data yet" and "no permission" both lead to a helpful screen with a link to the Health app's settings.

Setting up on Android

  1. Declare the Health Connect permissions your app needs in the manifest (through the library's config plugin in Expo).
  2. Provide a privacy rationale screen explaining how you use health data; Health Connect links to it from its permission UI.
  3. Request permissions for each data type in context.
  4. Complete the health permissions declaration in Google Play Console, describing why each data type is needed.

Health Connect is built into recent Android versions and available as an app on older ones, so handle the case where it needs to be installed or updated.

Reading and writing data

Typical integrations:

  • Read: steps, distance, active energy, workouts, heart rate, sleep, to show progress or personalise plans.
  • Write: completed workouts and their metrics, so the user's activity history stays complete in one place.

Practical tips:

  • Query by time range and aggregate on the device (daily step totals) rather than pulling raw samples you don't need.
  • Deduplicate when the same activity arrives from several sources (phone, watch, your own app).
  • Store only what your feature needs on your server, and say so in your privacy policy.
From the field: Fitness apps are a recurring part of my work, from Floey's class booking platform in Kuwait to MOVE's at-home workout app with 100K+ active users. Health integrations are a common request in that space, and the work that matters most isn't the API call, it's handling permissions gracefully and treating the data with care.

Testing health integrations

Health features are awkward to test because real data takes days to accumulate. On iOS, add sample data in the Health app on a simulator or test device, including workouts and heart rate, and test with permissions granted, partially granted and later revoked in Settings. On Android, Google provides a Health Connect testing tool for inserting sample records. Always finish on real devices with a real watch or tracker syncing data, since timing, duplicates and units behave differently with live sources.

Privacy rules you must follow

  • Apple (guideline 5.1.3): health data may not be used for advertising, marketing or data mining, and there are strict limits on sharing it with third parties. Explain your use clearly in the app and the privacy policy.
  • Google Play: apps using Health Connect must comply with the health apps and Health Connect policies, declare their use of each permission, and limit use to the declared purposes.
  • Both: request only the data types you use, let users disconnect and delete synced data, and never send health data to analytics or advertising tools.

Apple Watch and wearables

Reading data a watch has written to HealthKit is the simplest way to use wearable data. A dedicated Apple Watch app is different: it must be written natively (in Swift with SwiftUI) and communicates with your React Native app, for example through Watch Connectivity. Plan that as a separate native project.

FAQ

How do I use HealthKit in React Native?

Use a library such as @kingstinct/react-native-healthkit or react-native-health in a development build, enable the HealthKit capability, add the share and update usage descriptions, and request authorisation for specific data types when the user enables the feature.

What replaced Google Fit on Android?

Google deprecated the Google Fit APIs in favour of Health Connect, which stores health and fitness data on the device and lets apps share it with user permission. New Android integrations should use Health Connect, for example through react-native-health-connect.

Why does HealthKit return no data even though the user allowed it?

Either there's genuinely no data for the requested type and time range, or read permission was denied. HealthKit hides read-permission denials for privacy, so your app can't tell the difference. Show a helpful empty state with a link to the Health app's permission settings.

Can I use health data for personalised ads?

No. Apple's guidelines prohibit using health data for advertising, marketing or data mining, and Google Play restricts Health Connect data to the declared, user-facing purposes. Use health data only to provide the features users granted it for.

Next steps

If you're building a fitness or wellness app and want HealthKit and Health Connect integrated properly, with permissions, privacy and store declarations handled, I can help. Get in touch, or see how I work as a React Native developer.

Sources

Bhuwanesh Sisodia

Bhuwanesh Sisodia

Full-Stack, Mobile & AI Engineer

Bhuwanesh Sisodia is a Full-Stack, Mobile & AI Engineer based in Mumbai, with 7+ years of experience and 50+ apps shipped to the App Store and Google Play. He works independently with startups and product teams worldwide.

About meGitHubLinkedInX

Related