Skip to content
AF
React Native library

@kingstinct/react-native-healthkit

JavaScript · npm: @kingstinct/react-native-healthkit · latest 16.0.0 (2026-09-18) · registry read 2026-10-03

@kingstinct/react-native-healthkit is a TypeScript-first React Native binding for Apple HealthKit that keeps HealthKit's own identifier strings, such as HKQuantityTypeIdentifierStepCount. Since version 9 it is built on react-native-nitro-modules, which you install alongside it, and its latest npm release is 16.0.0. Its README warns that reading a type before requesting authorization for it crashes the app, and that the package does not run in Expo Go.

What it wraps

  • Apple HealthKit, on iOS. The README says the TypeScript mappings are kept as close as possible to HealthKit in naming and serialization, and lists quantity, category, workout, correlation and document types, with clinical records in a separate package, @react-native-healthkit/health-records.

    “React Native bindings for HealthKit with full TypeScript and Promise support covering about any kind of data.”

    Source: README

Named in the registry description: Apple HealthKit.

Install

Expo (then add the config plugin to app.json and build a dev client)

yarn add @kingstinct/react-native-healthkit react-native-nitro-modules

From the README

Bare React Native

yarn add @kingstinct/react-native-healthkit @react-native-healthkit/core react-native-nitro-modules

From the README

Then install pods

npx pod-install

From the README

Registry and repository facts

Read from npm and the repository by a script, not typed by hand. Where the metadata does not state something, the row says so. Dates are shown as dates, with the gap to our read, rather than as a verdict on whether the project is alive.

Latest version
16.0.0, published 2026-09-1815 days before our 2026-10-03 read
First published
2019-02-19 · 101 versions published
Licence
MITpackage.json license
Platforms
not stated in registry metadata
Requires
react >=19 · react-native >=0.79 · react-native-nitro-modules >=0.35package.json peerDependencies
Last commit, default branch
2026-10-021 day before our 2026-10-03 read · read by git on 2026-10-03
GitHub signals
715 stars · 23 open issues and PRs · not archived · last push to any branch 2026-10-02GitHub API, read 2026-10-03

Registry description: “React Native bindings for HealthKit”

What the README warns about

Each item is the project’s own statement, checked on 2026-10-03, quoted where the wording matters.

  • Authorize before you read, or the app crashes. The README warns this is easy to miss when a hook fetches data in the same component that requests authorization.

    “Failing to request authorization, or requesting a permission you haven't requested yet, will result in the app crashing.”

    Source: README

  • Version 9 renamed things. The README's 9.0.0 migration notes say the library moved to react-native-nitro-modules and dropped most HK prefixes from type names, that deleteObjects replaced the older deletion methods, and that workouts are now returned as proxies with functions such as getWorkoutRoutes().

    “As an example the type previously called HKQuantityTypeIdentifier is now just QuantityTypeIdentifier.”

    Source: README

  • Anchored queries for sync. The README documents queryQuantitySamplesWithAnchor, which returns samples, deletedSamples and a newAnchor to store for the next call — the incremental-sync primitive HealthKit itself exposes.

    Source: README

  • Release native objects in loops. The README says workout proxies keep the underlying HKWorkout alive until garbage collection, and recommends calling dispose() (after toJSON() if you need the data) when processing many workouts.

    Source: README

The API underneath

A wrapper inherits every rule of the API it calls. These pages cover that layer directly.

Other React Native packages on this list

React Native health data libraries: every package side by side, and how to choose →

  • react-native-health1.19.0 · 2024-10-15Apple HealthKit, on iOS only.
  • react-native-health-connect4.1.3 · 2026-08-06Android Health Connect.
  • expo-health-connect0.1.1 · 2024-07-31 · deprecatedNothing on its own: it was an Expo config plugin that configured react-native-health-connect at prebuild time.
  • react-native-google-fit0.22.1 · 2025-10-08The Google Fit API on Android, through Google Play Services and an OAuth 2.0 client configured in Google Cloud Console, according to the README's requirements.

Questions

Why does @kingstinct/react-native-healthkit crash when I read data?
Most likely because the read ran before authorization was requested for that type. The README says that failing to request authorization, or querying a permission you have not requested yet, crashes the app, and gives the example of a hook fetching data in the same component that requests authorization. Request first, and only mount the reading hooks after the request resolves.
Does @kingstinct/react-native-healthkit support Expo?
Yes, through its config plugin, but not in Expo Go. The README says to add @kingstinct/react-native-healthkit to the plugins array in app.json, optionally overriding the two usage descriptions and enabling background delivery, and then build a new development client.
What changed in @kingstinct/react-native-healthkit 9.0.0?
The README lists a move to react-native-nitro-modules, type names without most HK prefixes (HKQuantityTypeIdentifier became QuantityTypeIdentifier), fewer required parameters, flexible filters, deleteObjects replacing the earlier deletion methods, workouts returned as proxies with functions, and object identifiers as strictly typed strings rather than enums.

Registry facts read by scripts/fetch-libraries.mjs on 2026-10-03 and refreshed weekly; the latest release was published 15 days before our 2026-10-03 read. README quotes identify the project’s own statements; the selection, grouping and comparisons are AIFitnessAPI’s. For tagged releases of the main bridges, see the SDK release tracker.

← All health and fitness libraries