Android app for self-owned storage and analysis of personal health data — pulls data from multiple sources into one open format (CSV), stored where you decide. No third-party lock-in.
Status: work in progress. Core sync is stable (Health Connect, Withings, local storage, OneDrive upload); UI polish and further data sources are in development.
- Reads 26 record types (sleep, heart rate, HRV, SpO2, steps, blood pressure, …) from Health Connect
- Pulls scale data (weight, body fat, water, bone, muscle mass) from the Withings API via OAuth2
- Merges all sources into one CSV per year — one row per day, with a source column showing which services delivered data
- Stores locally via Storage Access Framework (no broad file permissions) and/or uploads to OneDrive (MSAL), including an OneDrive-only mode
- Bulk sync runs as a foreground service with notification
- Modular
DataSourceinterface — adding a source means one new class CloudUploaderinterface prepared for further cloud providers- Batch pre-fetch per source: one API call per period instead of per day
- OAuth tokens in
EncryptedSharedPreferences; secrets via a gitignoredsecrets.properties+ BuildConfig - UI in Jetpack Compose
Kotlin · Android SDK 34 · Jetpack Compose · Health Connect API · Withings API · Microsoft MSAL