# 2048 Android Development

> Implement or review the Jetpack Compose 2048 app, its ViewModel and storage, Material UI, Gradle build, or emulator tests.

- Skill: `hoangsonww/2048-android-development` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add hoangsonww/2048-android-development`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hoangsonww/2048-android-development/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: hoangsonww (https://skillmd.com/u/hoangsonww)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hoangsonww/2048-android-development

---


# 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.

