- New MeasurementDetailScreen with wijzigen/verwijderen - WeightChart now supports 30 and 365 days - NewMeasurementScreen now handles both create and edit - Updated README to match current code - Add build-toolchain documentation - Ignore *.apk build artifacts
2.7 KiB
2.7 KiB
Lokale APK build toolchain
Overzicht
De Weegschaal app kan lokaal gebouwd worden tot een zelfstandige APK zonder EAS cloud. Dit is handig voor snelle iteraties of als je geen internetverbinding hebt voor de cloud build.
Benodigdheden
| Component | Versie | Installatie |
|---|---|---|
| Java | OpenJDK 21+ | brew install --cask temurin |
| Android Command Line Tools | laatste | brew install --cask android-commandlinetools |
| Android Platform Tools | laatste | brew install --cask android-platform-tools |
| Node.js | 22+ | brew install node |
| EAS CLI | laatste | via npm (npx eas) |
Android SDK instellen
ANDROID_HOME moet gezet zijn in je shell config (~/.zshrc):
export ANDROID_HOME="/home/linuxbrew/.linuxbrew/share/android-commandlinetools"
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH"
Licenties accepteren:
yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME --licenses
Best practices:
- Gebruik
--sdk_root=$ANDROID_HOMEbij sdkmanager commando's, anders installeert hij naar de verkeerde plek - De eerste build downloadt automatisch de juiste platform-, build-tools-, NDK- en CMake-versies. Je hoeft ze niet handmatig voor te installeren.
- Wil je ze toch vastzetten:
sdkmanager "platforms;android-36" "build-tools;36.0.0"
APK bouwen
cd /home/eddy/bin/weegschaal-app
npx eas build --local --profile apk --platform android
Het build profiel staat in eas.json:
"apk": {
"android": {
"buildType": "apk"
}
}
De build:
- Draait
npx expo prebuild(maaktandroid/directory aan) - Bundelt de JS bundle via Metro
- Voert
./gradlew :app:assembleReleaseuit - Produceert
android/app/build/outputs/apk/release/app-release.apk - Kopieert het resultaat naar
build-<timestamp>.apkin de projectroot
Duur
- Eerste build: ~13 minuten (Gradle download, NDK/CMake compilatie)
- Latere builds: ~2-3 minuten (Gradle daemon werkt door)
Veelvoorkomende problemen
ANDROID_HOME niet gezet
Error: ANDROID_HOME is not set
→ Controleer of de export in ~/.zshrc staat en herlaad met source ~/.zshrc
Gradle fault / OutOfMemoryError
The daemon will expire after running out of JVM Metaspace
→ Zet in android/gradle.properties:
org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g
Licenties niet geaccepteerd
→ Voer yes | sdkmanager --licenses uit
Testen
Voor het bouwen kun je de tests draaien:
cd /home/eddy/bin/weegschaal-app
npm test
Installatie op Android
# Via ADB (als je toestel aan de USB hangt met debugging aan)
adb install -r weegschaal.apk
# Of handmatig: kopieer APK naar toestel, open bestand, kies 'installeren'