- name
- 2048-android-development
- description
- Implement or review the Jetpack Compose 2048 app, its ViewModel and storage, Material UI, Gradle build, or emulator tests.
# 2048 Android development
Read `AGENTS.md` and the native sections of `docs/architecture.md`. Keep board rules and session state in `GameViewModel.kt`, persistence in `GameStorage.kt`, and presentation in Compose. Preserve deterministic test hooks without weakening production randomness or saved-state validation.
Use Material vector icons and Compose semantics; never use Unicode symbols as controls. Keep tap targets, system insets, contrast, screen-size adaptation, haptics, restart confirmation, help, win continuation, and loss recovery intact.
The board's `detectDragGestures` must consume each `PointerInputChange`. The root column scrolls vertically, so an unconsumed change reaches the parent scroll too and a board swipe drags the whole screen. Keep tile animation aligned with the web and iOS timings documented in `docs/architecture.md`, and keep it collapsing to instant when the system animation scale is zero.
No JDK is required: Gradle provisions its own from `gradle/gradle-daemon-jvm.properties`. Use the `make android-*` targets or `Scripts`-equivalent wrappers rather than calling `./gradlew` or `adb` bare — `adb` is not on `PATH` after a default Android Studio install.
Run `make test-android` for every change. When UI behavior changes and a device is available, run `make test-android-device`, inspect logcat for app exceptions, and manually review gameplay, help, restart, win, and loss states. `make android-run` builds, installs, and launches in one step.
GitHub에서 보기