Warning
This module is currently in alpha. While it provides core functionality, it is still under active development and may contain bugs.
A simple way to work with HealthKit on iOS and Health Connect on Android in React Native. Access health data like steps, sleep, and more with one interface that unifies react-native-health and react-native-health-connect.
To install and setup this package, please refer to the installation guide.
This library supports reading and writing the following health data types:
- Blood glucose - Blood glucose levels with support for mg/dL and mmol/L units
- Weight - Body weight with support for kg, grams, and pounds
- Height - Body height with support for cm, meters, feet, and inches
- Heart rate - Heart rate measurements in beats per minute
- Steps - Daily step count
- Resting heart rate - Resting heart rate measurements
- Blood pressure - Systolic and diastolic blood pressure readings
- Oxygen saturation - Blood oxygen saturation percentage
- Active Energy Burned - The amount of energy expended during a specific activity.
- Basal Energy Burned - The amount of energy expended at rest.
import { useState } from 'react'; import { Text } from 'react-native'; import { initializeHealth, HealthLinkDataType, HealthLinkPermissions, read, write, BloodGlucoseUnit, WeightUnit, HeighUnit } from 'react-native-health-link'; initializeHealth({ read: [HealthLinkPermissions.BloodGlucose], write: [HealthLinkPermissions.BloodGlucose], }); export default function App() { const [bloodGlucose, setBloodGlucose] = useState<number | undefined>(); const [weight, setWeight] = useState<number | undefined>(); // Reading health data read(HealthLinkDataType.BloodGlucose, { unit: BloodGlucoseUnit.MmolPerL, startDate: new Date('2025-01-01').toISOString(), }).then((data) => { setBloodGlucose(data[0]?.value); }); read(HealthLinkDataType.Weight, { unit: WeightUnit.Kg, startDate: new Date('2025-01-01').toISOString(), }).then((data) => { setWeight(data[0]?.value); }); //Writing health data write(HealthLinkDataType.BloodGlucose, { value: 4.5, unit: BloodGlucoseUnit.MmolPerL, }); write(HealthLinkDataType.Height, { value: 175, unit: HeighUnit.Cm, }); return ( <> <Text>Your blood glucose is {bloodGlucose} mmol/L</Text> <Text>Your weight is {weight} kg</Text> </> ); }See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT
This library provides a common interface to simplify cross-platform use of health tools; most of the credit goes to react-native-health and react-native-health-connect.
Made with create-react-native-library
Created with ❤️ by Xmartlabs
