- Dart 96.3%
- Python 2.6%
- Ruby 0.5%
- Swift 0.4%
- Shell 0.1%
The F-Droid build failed with "Multiple apks match app-*-release.apk": a
single Builds block with a glob output can't resolve to one APK
(fdroidserver globs the output and errors on >1 match).
Replace the single glob block with three explicit per-ABI blocks, each
building just its ABI via `--split-per-abi --target-platform=android-<abi>`
(so build.gradle.kts's versionCodeOverride still applies) and naming that
ABI's file:
- 61 app-armeabi-v7a-release.apk --target-platform=android-arm
- 62 app-arm64-v8a-release.apk --target-platform=android-arm64
- 63 app-x86_64-release.apk --target-platform=android-x64
Verified locally: --target-platform=android-arm64 builds exactly
app-arm64-v8a-release.apk at versionCode 62. Same seed commit (
|
||
|---|---|---|
| .claude | ||
| .forgejo/workflows | ||
| .githooks | ||
| android | ||
| assets/icon | ||
| docs | ||
| fastlane/metadata | ||
| fdroid | ||
| ios | ||
| lib | ||
| test | ||
| tool | ||
| .fvmrc | ||
| .gitattributes | ||
| .gitignore | ||
| .metadata | ||
| analysis_options.yaml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| flutter_launcher_icons.yaml | ||
| l10n.yaml | ||
| LICENSE | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
Cairn
A personal health-data aggregator that you own end to end.
Cairn reads your wearable and phone health data from the platform's own health store (Apple HealthKit / Android Health Connect), normalizes it into an open, documented file format (Open mHealth / IEEE 1752.1, as sharded JSON Lines), and syncs it into a Nextcloud you control. No central server, no proprietary database, no vendor lock-in — the files in your Nextcloud are the single source of truth.
It is deliberately aimed at privacy-conscious people and self-hosters who run (or will happily run) their own Nextcloud. "Bring your own Nextcloud" is the feature, not a barrier.
Components
- Mobile app (Flutter, iOS + Android) — reads the health store, writes OMH files, syncs over WebDAV. The only writer. (MIT)
- Nextcloud web app (PHP + Vue, planned) — an optional, read-only second frontend over the same files. (AGPL-3.0-or-later — Nextcloud app store)
Status
Early development. The repository currently contains the project foundation: Flutter scaffold, architecture skeleton, and documentation. See the phased plan in docs/DESIGN.md §15.
Documentation
- docs/DESIGN.md — full design and rationale (source of truth).
- docs/DEVELOPMENT.md — set up a dev environment from scratch (Flutter and the future Nextcloud app).
- CHANGELOG.md — notable changes.
License
The mobile app and the OMH file format are released under the MIT License. The future Nextcloud web app will ship from its own subtree under AGPL-3.0-or-later (it links AGPL Nextcloud server code); see docs/DEVELOPMENT.md §5.
Not a medical device
Cairn aggregates and visualizes data. It makes no diagnostic, treatment, or clinical claims.