@kingstinct/react-native-healthkit
JavaScript · npm: @kingstinct/react-native-healthkit · latest 16.0.0 (2026-09-18) · registry read 2026-10-03
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-modulesFrom the README
Bare React Native
yarn add @kingstinct/react-native-healthkit @react-native-healthkit/core react-native-nitro-modulesFrom 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
- Repository
- kingstinct/react-native-healthkit
- 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
deleteObjectsreplaced the older deletion methods, and that workouts are now returned as proxies with functions such asgetWorkoutRoutes().“As an example the type previously called HKQuantityTypeIdentifier is now just QuantityTypeIdentifier.”
Source: README
Anchored queries for sync. The README documents
queryQuantitySamplesWithAnchor, which returnssamples,deletedSamplesand anewAnchorto 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()(aftertoJSON()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.
- HealthKit integration guide →The native API every iOS package here calls into: authorization, queries, background delivery.
- HealthKit data types by group →Apple's identifiers grouped the way Apple groups them — check the type you need exists before blaming the bridge.
- Every HealthKit error code →What the HKError a bridge passes through actually means.
- All HealthKit identifiers →This package takes Apple's identifier strings verbatim, so Apple's list is its type list.
- HealthKit authorization not determined →The state your code is in before the request this package insists on.
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.