claude e2ffb4f011
All checks were successful
release / build-release (push) Successful in 5m16s
Helnamn i hälsningen, flera egna stänger, kroppsvikt med historik och graf
- Hälsningen använder profilens displayName (cachas lokalt)
- Skivkalkylatorn: obegränsat antal egna stänger med exakt vikt (13,7 kg
  funkar) — läggs till/tas bort i inställningarna, visas som chips
- Profil: uppdatera kroppsvikten direkt i appen (decimalinmatning);
  vikthistorik med uuid-baserad rättning och borttagning per mätning
  (addBodyMeasurement med fallback till updateBodyWeight mot äldre API)
- Statistik: kroppsviktsgraf med råpunkter, glidande medelvärde (mjuk
  linje) och streckad linjär trendlinje
- API:t har redan fälten muskel/fett/vatten-% för framtida kroppsanalys

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kf4MAbZ3c3B4Xy5XfuGsCP
2026-07-25 17:51:38 +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.

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

Description
Android app for lifting and tracking
Readme 530 KiB
latest Latest
2026-07-23 13:24:29 +02:00
Languages
Kotlin 100%