Skip to content

Repository files navigation

HealthSync

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.

What it does

  • 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

Architecture notes

  • Modular DataSource interface — adding a source means one new class
  • CloudUploader interface 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 gitignored secrets.properties + BuildConfig
  • UI in Jetpack Compose

Stack

Kotlin · Android SDK 34 · Jetpack Compose · Health Connect API · Withings API · Microsoft MSAL

About

Android app that aggregates personal health data (Health Connect, Withings) into open CSV files — stored locally or on OneDrive

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages