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