All checks were successful
Build & Release APK / build (push) Successful in 2m5s
- react-native-health-connect (config plugin, minSdk 26, 11 read perms) - sync-on-open + manual sync: incremental via server watermark, chunked POST to /api/health/v1/fitbit/sync (HR, resting HR, HRV, SpO2, resp rate, steps/distance/kcal/floors dailies, staged sleep sessions) - Fitbit screen: steps/RHR/HRV/SpO2 tiles + daily charts + sleep list + per-stream record counts (answers the which-types-does-Google-Health- share question empirically) - Sleep tab now merges Fitbit Air nights (wins over older sources) - Today screen Fitbit card Server side (deployed separately on VPS): hc_samples/hc_daily/hc_sleep tables + sync/latest/summary endpoints in health-api; Caddy routes POST /api/health/v1/fitbit/* behind the same basic_auth. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
71 lines
2.1 KiB
JSON
71 lines
2.1 KiB
JSON
{
|
|
"expo": {
|
|
"name": "Health",
|
|
"slug": "health-app",
|
|
"version": "1.0.0",
|
|
"orientation": "portrait",
|
|
"icon": "./assets/images/icon.png",
|
|
"scheme": "healthapp",
|
|
"userInterfaceStyle": "dark",
|
|
"backgroundColor": "#0d0d0f",
|
|
"ios": {
|
|
"icon": "./assets/images/icon.png",
|
|
"bundleIdentifier": "xyz.rehbock.health",
|
|
"supportsTablet": true
|
|
},
|
|
"android": {
|
|
"package": "xyz.rehbock.health",
|
|
"permissions": [
|
|
"android.permission.health.READ_HEART_RATE",
|
|
"android.permission.health.READ_RESTING_HEART_RATE",
|
|
"android.permission.health.READ_HEART_RATE_VARIABILITY",
|
|
"android.permission.health.READ_OXYGEN_SATURATION",
|
|
"android.permission.health.READ_SLEEP",
|
|
"android.permission.health.READ_STEPS",
|
|
"android.permission.health.READ_RESPIRATORY_RATE",
|
|
"android.permission.health.READ_DISTANCE",
|
|
"android.permission.health.READ_ACTIVE_CALORIES_BURNED",
|
|
"android.permission.health.READ_TOTAL_CALORIES_BURNED",
|
|
"android.permission.health.READ_FLOORS_CLIMBED"
|
|
],
|
|
"adaptiveIcon": {
|
|
"backgroundColor": "#0d0d0f",
|
|
"foregroundImage": "./assets/images/android-icon-foreground.png",
|
|
"backgroundImage": "./assets/images/android-icon-background.png",
|
|
"monochromeImage": "./assets/images/android-icon-monochrome.png"
|
|
},
|
|
"predictiveBackGestureEnabled": false
|
|
},
|
|
"web": {
|
|
"output": "static",
|
|
"favicon": "./assets/images/favicon.png"
|
|
},
|
|
"plugins": [
|
|
"expo-router",
|
|
"expo-secure-store",
|
|
"react-native-health-connect",
|
|
[
|
|
"expo-build-properties",
|
|
{
|
|
"android": {
|
|
"minSdkVersion": 26
|
|
}
|
|
}
|
|
],
|
|
"./plugins/with-release-signing.js",
|
|
[
|
|
"expo-splash-screen",
|
|
{
|
|
"backgroundColor": "#0d0d0f",
|
|
"image": "./assets/images/splash-icon.png",
|
|
"imageWidth": 76
|
|
}
|
|
]
|
|
],
|
|
"experiments": {
|
|
"typedRoutes": true,
|
|
"reactCompiler": true
|
|
}
|
|
}
|
|
}
|