Repository navigation
Building
- JDK 17.
- The Android SDK with platform 36 and build tools 36.
- The
ANDROID_HOMEenvironment variable set to the SDK directory, or alocal.propertiesfile withsdk.dir.
./gradlew assembleDebugThe APK lands at app/build/outputs/apk/debug/app-debug.apk.
Install it on a connected phone with:
adb install -r app/build/outputs/apk/debug/app-debug.apkThere are no unit tests yet, and the instrumented sources need an emulator to run. CI compiles them so they cannot rot:
./gradlew assembleDebugAndroidTestThe build uses Gradle 9.5, Android Gradle Plugin 9.3.1, Kotlin 2.3.20, and
Jetpack Compose through the Compose BOM. Every version is in
gradle/libs.versions.toml.
Tags drive releases. Push a tag such as v1.0.1 and the release workflow builds
a signed APK and attaches it to a GitHub Release, with a SHA-256 file next to
it. The version name comes from the tag and the version code from the workflow
run number.
The signing key is not in the repository. It comes from four repository
secrets, and docs/RELEASING.md explains how to create it and how to set the
secrets.
The app ships only the Material Symbols glyphs it draws, and
tools/generate_android_icons.py generates them into
app/src/main/java/com/bilawalriaz/pocketwiki/ui/icons/PocketIcons.kt. Run it
only when the icon list changes:
python3 tools/generate_android_icons.py