Add a standalone Android app with the same daily reading and config page
build / build (push) Successful in 4m8s

android/ links engine/src/ and interpreter/src/ via JNI/CMake (real
astronomy.c, not the watch's size-constrained substitute), rendering
through Jetpack Compose with a burger-menu config page mirroring
WatchConfig and a WorkManager-driven daily notification. Independent
of the watch app - neither requires the other.

build-image now bundles the Android SDK/NDK alongside the Pebble SDK
(VERSION bumped to 2), and .gitea/workflows/build.yml/Makefile/
run-image.sh build and publish the APK the same way as the CLI
tarball and .pbw.
This commit is contained in:
ml
2026-07-18 22:41:51 +02:00
parent a3e437277f
commit 3bc1263294
49 changed files with 2530 additions and 43 deletions
+21 -3
View File
@@ -59,11 +59,19 @@ watch/ The actual Pebble watchapp - links engine/src/
notification, and config page. Built separately
from the rest of this repo (`make watchapp`,
below) - requires the Pebble SDK.
android/ A standalone Android app (independent of the
watch app - neither requires the other) with the
same daily reading + config page, Jetpack Compose
UI, links engine/src/ and interpreter/src/ via
JNI/CMake (see CLAUDE.md's "Android app
packaging"). Built separately (`make android`,
below) - requires the Android SDK/NDK.
docs/ Architecture/dataflow diagrams, input/output format reference.
build-image/ Dockerfile for the reproducible build environment
(C toolchain + Pebble SDK) used by CI and by the
build-image.sh/run-image.sh/upload-image.sh scripts
at the repo root (see "Building" below).
(C toolchain + Pebble SDK + Android SDK/NDK) used
by CI and by the build-image.sh/run-image.sh/
upload-image.sh scripts at the repo root (see
"Building" below).
Makefile Single root Makefile, builds both engine/ and
interpreter/, and packages a release (`make package`).
```
@@ -98,6 +106,16 @@ make watchapp # -> dist/deck-in-a-dash-<version>.pbw, same version
# resolution as `make package`
```
**Building the Android app** (`android/`, a standalone app independent
of the watch app) needs the separate Android SDK/NDK
(`ANDROID_HOME`/`ANDROID_NDK_HOME` set - see `android/README.md`), so
it's likewise a separate target:
```bash
make android # -> dist/deck-in-a-dash-<version>.apk, same version
# resolution as `make package`
```
**CI runs `make watchapp` too**`.gitea/workflows/build.yml` builds
and tests everything inside a container built from `build-image/`,
which bundles the Pebble SDK alongside the C toolchain so the runner