Skip to content

xmartlabs/react-native-health-link

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

react-native-health-link

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.

Installation

To install and setup this package, please refer to the installation guide.

Supported Health Data Types

This library supports reading and writing the following health data types:

Read & Write Support

  • 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

Read Only Support

  • 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.

Usage

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> </> ); }

Documentation

SDK functions:

initializeHealth

isAvailable

Data functions:

read

write

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

Acknowledgements

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


Xmartlabs Logo

Created with ❤️ by Xmartlabs