Build From Source
Android App
OpenVitals is a Kotlin/Jetpack Compose app (Hilt, Room, Health Connect). It was Flutter between 2.0.0 and 2.4.1 and was migrated back in 2.5.0; the Dart implementation survives only in git history.
Prerequisites
-
JDK 17.
-
Android SDK Platform 37, with SDK Build-Tools 37.0.0.
compileSdkis 37.Note the package is
platforms;android-37.0, notandroid-37— Android ships minor-versioned platforms now.sdkmanageronly warns on an unknown package and still exits 0, so a typo here does not fail there; it fails much later inside Gradle looking like an unrelated problem.sdkmanager "platforms;android-37.0" "build-tools;37.0.0" -
minSdkis 26 (a Health Connect requirement);targetSdkis 36.
Build And Run
git clone https://codeberg.org/OpenVitals/mobile-app.git
cd mobile-app
./gradlew :app:installDebugFor a release build (unsigned unless the OPENVITALS_RELEASE_* environment
variables provide a keystore):
./gradlew :app:assembleReleaseChecks
Run the same checks CI runs, before opening a pull request:
./gradlew verifyCiThat is the build, the unit tests, lint, the translation gate
(verifyTranslations, backed by scripts/verify-translations.py) and the
instrumentation-test compile. The instrumentation tests themselves — including
the visual goldens — need a connected device: scripts/goldens.sh runs them,
and scripts/goldens.sh --update re-records the golden baselines.
The local app is the Health Connect-only app and should stay internet-free.
Documentation Site
Clone this documentation repository:
git clone https://codeberg.org/OpenVitals/docs.git
cd docs
npm install
npm run dev