mirror of
https://github.com/tiennm99/loto.git
synced 2026-10-20 00:15:33 +00:00
feat(android)!: replace the Capacitor wrapper with a native Kotlin/Compose app
Fresh Kotlin 2.2 + Jetpack Compose app at feature parity with web/ (game logic, settings contract, voice semantics ported one-to-one with twinned tests; 104 unit + 9 instrumentation tests). Fully offline: VIBRATE is the only permission; Media3's ACCESS_NETWORK_STATE is stripped. Voice clips mount from web/static/audio at build time. Same applicationId, signing env contract, and Play alpha track; versionCode 7 / 0.2.0. CI Android job is Gradle-only (lint, test, debug + R8 release APK) and the release workflow fails fast on an unbumped versionCode. BREAKING CHANGE: WebView localStorage (settings, in-progress round) is not migrated; wrapper users start clean.
This commit is contained in:
1 parent
8f9b03ca05
commit
e314ae01c8
126 files changed
+6390
-2275
No files matched your search
+3
-2
@@ -7,8 +7,9 @@ No runtime TTS or server required.
|
||||
|
||||
Live: [tiennm99.github.io/loto](https://tiennm99.github.io/loto)
|
||||
|
||||
Android port: [`android/`](../android) — a Capacitor wrapper that bundles this
|
||||
app into a fully-offline APK.
|
||||
Android port: [`android/`](../android) — a native Kotlin + Jetpack Compose
|
||||
app at feature parity with this one (this app is the behavioral spec). It
|
||||
mounts `static/audio/` straight into its APK, so the voice clips exist once.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -145,11 +145,11 @@ One workflow, `.github/workflows/ci.yml`, covers PRs and pushes to `main`:
|
||||
- **`deploy-pages`** — canonical deploy; publishes `web-build-gh`.
|
||||
- **`deploy-firebase`** / **`preview-firebase`** — Firebase live channel on
|
||||
`main`, preview channel on same-repo PRs; both consume `web-build`.
|
||||
- **`android-debug`** — syncs `web-build` into the Capacitor project and
|
||||
assembles an unsigned APK.
|
||||
- **`android-debug`** — independent of the web build: lints, tests and
|
||||
assembles the native app's unsigned APK straight from the checkout.
|
||||
|
||||
Tags run `.github/workflows/android-release.yml` instead, which builds the
|
||||
web app itself because no `ci` run exists to take artifacts from.
|
||||
Tags run `.github/workflows/android-release.yml` instead, which builds
|
||||
standalone because no `ci` run exists to take artifacts from.
|
||||
|
||||
## Performance Checklist
|
||||
|
||||
|
||||
Reference in new issue
Block a user