claude 9784b749aa
All checks were successful
release / build-release (push) Successful in 6m21s
doc: plan för aktiviteter, kcal-mätare & mål (godkänd; speglas i brasse-pc.eu-v2)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C2GA94E1f3cmrvdQLQhYdg
2026-08-23 17:02:37 +02:00

FitnessDroid

Android-klient för gym-API:t på https://gymapi.brasse-pc.eu/graphql — samma backend som gym-delen i brasse-pc.eu-v2.

  • Kräver Android 12 eller nyare (minSdk 31)
  • Kotlin + Jetpack Compose + Material 3 (Material You-dynamiska färger)
  • GraphQL över OkHttp, tokenlagring i DataStore

Installera appen på telefonen

Ladda ner FitnessDroid.apk från släppsidan (latest byggs om vid varje push till main), öppna filen på telefonen och tillåt installation från okänd källa. Uppdateringar installeras ovanpå — samma signeringsnyckel används av CI och lokala byggen.

Bygga själv

Förutsättningar (Arch/Garuda)

sudo pacman -S jdk17-openjdk android-tools

Android SDK behövs också (platform 35 laddas ner automatiskt av bygget om licensen är accepterad). Peka ut din SDK i local.properties i repo-roten:

sdk.dir=/home/<du>/Android/Sdk

Bygg

git clone https://gitea.brasse-pc.eu/brasse/FitnessDroid.git && cd FitnessDroid
./gradlew :app:assembleRelease            # signerad release-APK
# APK: app/build/outputs/apk/release/app-release.apk

I VS Code: kör build-tasken (Ctrl+Skift+B) — den lägger APK:n i build/FitnessDroid.apk. Tasken installera på telefon (adb) installerar den direkt på en ansluten telefon med USB-felsökning på.

Testa mot API:t

Logga in med ditt vanliga gym-konto (LDAP). API-url:en går att ändra under "Avancerat" på inloggningsskärmen (standard: https://gymapi.brasse-pc.eu/graphql).

Signeringsnyckeln

Nyckeln är inte incheckad (repot är publikt). Lokalt ligger den i signing/fitnessdroid.jks + signing/keystore.properties (gitignorerade); CI får samma nyckel via Actions-secrets KEYSTORE_B64 och KEYSTORE_PASSWORD. Finns ingen nyckel signeras release-bygget med debug-nyckeln så att en färsk klon ändå kan bygga — men den APK:n kan inte uppdatera en installation från släppsidan (annan signatur).

Skapa en ny nyckel (om signing/ saknas):

keytool -genkeypair -keystore signing/fitnessdroid.jks -alias fitnessdroid \
  -keyalg RSA -keysize 2048 -validity 10950 -dname "CN=FitnessDroid, O=brasse-pc.eu"
# och skriv motsvarande signing/keystore.properties (storeFile/storePassword/keyAlias/keyPassword)

CI

.gitea/workflows/release.yaml bygger en signerad APK på Pi5-runnern (arm64) vid varje push till main och lägger den på den rullande latest-releasen. Eftersom Googles aapt2 bara finns för x86_64 använder bygget en statiskt byggd arm64-aapt2 via android.aapt2FromMavenOverride.

Bluetooth-våg

Appen kan hämta vägningar (vikt + muskel/fett/vatten-%) direkt från en BLE-personvåg med openScales drivrutiner (vendrade under app/src/main/java/com/health/openscale/). Koppla vågen under Inställningar → Bluetooth-våg och väg dig från profilen. Först ut: Biltema 84-1002 (PT-727), som är en Exingtech Y1 ("VScale"). Detaljer: doc/openscale-integration.md.

Licens

GPL-3.0 (se LICENSE). Relicensierad från och med BT-vågstödet — openScales drivrutiner är GPL-3.0, vilket kräver att hela appen är det. BLE-biblioteket Blessed-Kotlin är MIT.

Mer om arkitektur och planer: doc/plan.md och wikin.

Description
Android app for lifting and tracking
Readme GPL-3.0 1.2 MiB
latest Latest
2026-07-23 13:24:29 +02:00
Languages
Kotlin 99.5%
Python 0.5%