# Deck in a Dash — Android app A standalone Android app showing the same daily tarot (Celtic Cross) + astrology reading as the Pebble watch app (`../watch/`), with a burger menu leading to a config page. Independent of the watch app - neither requires the other to be installed. See the root [`CLAUDE.md`](../CLAUDE.md)'s "Android app" section for the full architecture (JNI-linked engine/interpreter, JSON bridge schema, WorkManager notification, card art pipeline). ## Building Requires: - A JDK (17+; the project's own `compileOptions`/toolchain target Java 17). `JAVA_HOME` should point at it, or a `java` matching that version must be first on `PATH`. - The Android SDK, with `ANDROID_HOME` (or `ANDROID_SDK_ROOT`) set - needs at minimum `platforms;android-36`, `build-tools;36.0.0`, `ndk;30.0.14904198`, and `cmake;3.22.1` installed (see `app/build.gradle.kts`'s `compileSdk`/`ndkVersion` and `app/src/main/jni/CMakeLists.txt`'s `cmake_minimum_required` for the exact versions this project pins - `../build-image/Dockerfile` installs the same ones for CI). - `ANDROID_NDK_HOME` set to that installed NDK's directory. - Python 3 + Pillow (`pip install Pillow`) - needed by `scripts/gen_card_images.py`/`gen_launcher_icon.py`, which Gradle's `preBuild` task runs automatically (see `app/build.gradle.kts`). ```bash ./gradlew assembleDebug # -> app/build/outputs/apk/debug/app-debug.apk ``` Or, from the repo root: `make android`, which wraps the above and copies the APK into `dist/deck-in-a-dash-.pbw`'s sibling, `dist/deck-in-a-dash-.apk` (same version resolution as `make package`/`make watchapp` - see the root `Makefile`). The Gradle wrapper (`./gradlew`) resolves its own pinned Gradle version on first run - no separate Gradle install is needed. Ships the Android auto-generated debug keystore, not a release-signed build - see the root `CLAUDE.md`'s Android section for why.