Migrate From Apple Health or Health Connect
The current integration of Apple Health and Health Connect is still operational and continues to receive support and updates. The propuse of this is to guide to have only one integration for the both services
Installation
Install the unified package and link it for Android and iOS. Both architecture tracks use the same package name, so select and pin the major version before continuing:
| Client project | ROOK SDK major |
|---|---|
| React Native 0.73 with Native Modules | 4.x |
| React Native 0.83 with TurboModules | 5.x |
- npm
- Yarn
- pnpm
npm install react-native-rook-sdk@^4npm install react-native-rook-sdk@^5yarn add react-native-rook-sdk@^4yarn add react-native-rook-sdk@^5pnpm add react-native-rook-sdk@^4pnpm add react-native-rook-sdk@^5Run only the command for the selected major. If you are also changing from 4.x to 5.x, complete the Native Modules to TurboModules migration.
For iOS you have to run npx pod-install and for android you don't have to do anything else for install.
Configuration
If you have already configured Health Connect and Apple Health services, you don't need to take any further action. However, if you haven't, please refer to the fundamentals documentation for instructions on how to do so.
Imports
-import { RookSyncGate } from 'react-native-rook-sdk-health-connect';
-import { RookSyncGate } from 'react-native-rook-sdk-apple-health';
+import { RookSyncGate } from 'react-native-rook-sdk';
-import {useRookSyncConfiguration} from 'react-native-rook-sdk-health-connect'
-import {useRookConfiguration} from 'react-native-rook-sdk-apple-health'
+import {useRookConfiguration} from 'react-native-rook-sdk'
-import {useRookSyncEvents} from 'react-native-rook-sdk-health-connect'
-import {useRookEvents} from 'react-native-rook-sdk-apple-health'
+import {useRookEvents} from 'react-native-rook-sdk'
-import {useRookSyncPermissions} from 'react-native-rook-sdk-health-connect'
-import {useRookPermissions} from 'react-native-rook-sdk-apple-health'
+import {useRookPermissions} from 'react-native-rook-sdk'
-import {useRookSyncSummaries} from 'react-native-rook-sdk-health-connect'
-import {useRookSummaries} from 'react-native-rook-sdk-apple-health'
+import {useRookSummaries} from 'react-native-rook-sdk'
-import {useRookBackground} from 'react-native-rook-sdk-apple-health'
+import {useRookAppleHealth} from 'react-native-rook-sdk'
RookSyncGate
react-native-rook-sdk, you only need one gate to add your credentials.-import { RookSyncGate } from 'react-native-rook-sdk-health-connect';
-import { RookSyncGate } from 'react-native-rook-sdk-apple-health';
+import { RookSyncGate } from 'react-native-rook-sdk';
export const ExampleComponent = () => {
return (
<RookSyncGate
environment="sandbox"
clientUUID="YOUR-CREDENTIALS"
password="YOUR-CREDENTIALS"
>
<YOUR-COMPONENTS />
</RookSyncGate>
)
}
Manual Sync
Changes for manual sync of summaries
-import {useRookSyncSummaries} from 'react-native-rook-sdk-health-connect'
-import {useRookSummaries} from 'react-native-rook-sdk-apple-health'
+import {useRookSummaries} from 'react-native-rook-sdk'
export const ExampleComponent = () => {
-const rookSummaries = useRookSyncSummaries();
-const rookSummaries = useRookSummaries(); // For Apple Health
+const rookSummaries = useRookSummaries();
const handleManualSyncSummaries = async () => {
try {
await rookSummaries.{pillar-to-sync}()
}
catch(error) {
console.log(error)
}
}
return (
<Button title="Sync" onPress={handleManualSyncSummaries}/>
)
}
The rest of the functions of react-native-rook-sdk.useRookSummaries are named as useRookSyncSummaries and react-native-rook-sdk-apple-health.useRookSummaries
Changes for manual sync of Events
-import {useRookSyncEvents} from 'react-native-rook-sdk-health-connect'
-import {useRookEvents} from 'react-native-rook-sdk-apple-health'
+import {useRookEvents} from 'react-native-rook-sdk'
export const ExampleComponent = () => {
-const rookEvents = useRookSyncEvents();
-const rookEvents = useRookEvents(); // For Apple Health
+const rookEvents = useRookEvents();
const handleManualSyncSummaries = async () => {
try {
await rookEvens.{events-to-sync}()
}
catch(error) {
console.log(error)
}
}
return (
<Button title="Sync" onPress={handleManualSyncSummaries}/>
)
}
The rest of the functions of react-native-rook-sdk.useRookEvents are named as useRookSyncEvents and react-native-rook-sdk-apple-health.useRookEvents but with an 's' at the end.
const {
ready,
syncYesterdayEvents,
syncTrainingEvent,
syncBloodGlucoseEvent,
syncBloodPressureEvent,
syncBodyMetricsEvent,
syncBodyHeartRateEvent,
syncPhysicalHeartRateEvent,
syncHealthConnectHydrationEvents,
syncHealthConnectNutritionEvents,
syncPhysicalOxygenationEvent,
syncBodyOxygenationEvent,
syncTemperatureEvent,
reSyncFailedEvents,
} = useRookEvents();
Background Sync
You need reference how to activete please refer to the documentation
Apple Health
import {useEffect} from 'react'
-import {useRookBackGround} from 'react-native-rook-sdk-apple-health'
+import {useRookAppleHealth} from 'react-native-rook-sdk'
export const ExampleComponent = () => {
-const { enableBackgroundForSummaries, enableBackgroundForEvents } = useRookSyncEvents();
+const { enableBackGroundUpdates } = useRookAppleHealth();
useEffect(() => {
-enableBackgroundForSummaries().then().cath()
-enableBackgroundForEvents().then().cath()
+enableBackGroundUpdates().then().cath()
}, [])
return (
...
)
}
Health Connect
import {useEffect} from 'react'
-import {useRookSyncConfiguration} from 'react-native-rook-sdk-health-connect'
+import {useRookConfiguration} from 'react-native-rook-sdk'
export const ExampleComponent = () => {
-const { sheduleYesterdaySync } = useRookSyncEvents();
+const {scheduleAndroidYesterdaySync} = useRookAppleHealth();
useEffect(() => {
scheduleAndroidYesterdaySync().then().cath()
}, [])
return (
...
)
}