feat: android-kotlin template (Compose + Material 3 Expressive, hermetic gradle builds, F-Droid recipe) #7
Loading…
Reference in a new issue
No description provided.
Delete branch "t3code/android-kotlin-template"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
feat: android-kotlin template
A native Android starter: Kotlin + Jetpack Compose with the latest
Material 3 Expressive features, tests at every level, hermetic nix
builds, a release pipeline, and F-Droid tooling.
What's in it
templates/android-kotlin/app/) — a barebones "Launchchecklist":
MaterialExpressiveThemewith dynamic color (Android12+) and the expressive motion scheme,
LinearWavyProgressIndicator,LoadingIndicator, cookie-shaped (MaterialShapes.Cookie9Sided)extended FAB, press-morphing list rows, segmented-button filter,
bottom sheet. No auth, no network, no permissions.
pinned + sha256-verified), Kotlin 2.4.21, Compose BOM 2026.09.00,
material3 1.5.0-beta01 (expressive APIs), committed gradle lockfiles
(strict locking).
nix flake check), Compose UI tests on the JVM via Robolectricnative graphics (no emulator), a screenshot test that renders the
real UI to PNG, and an instrumented test for devices.
gradle.nix+nix-modules/) — a fixed-output dependencycache rendered as a byte-deterministic maven mirror (gradle's
own metadata bins can't be pinned — per-JVM hash ordering — so the
offline builds re-derive them from the mirror; verified
reproducible), fully offline
apk/apk-releasederivations,ktlint/unit-test/apk-smoke checks, devshell (JDK 17 + androidenv
SDK, license acceptance scoped to the flake),
validateandupdate-deps-hashapps.ci.yml(canonical gates forinstantiated projects) and
release.yml(tagv*→ nix-builtrelease APK attached to a forgejo release).
fdroid/dev.starter.android.ymlbuild recipe plusfastlane/metadata/store listing.instantiate-and-validate job for it (multi-GB gradle caches);
validate locally after touching it, as documented.
How to test
All of the above was verified on a fresh init copy before opening
this PR (steps 1–4 green; the README screenshot was produced by step
4's test).
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.