| name | ppt-mobile-native |
| description | Kotlin Multiplatform app under mobile-native/ — Gradle workflow, modules, ADB requirement. |
| when_to_use | The plan touches mobile-native/ — Kotlin shared module, Android app, iOS app, or any mobile-specific flow. |
| mode | local |
| capabilities | ["C5","C6"] |
| tags | ["mobile"] |
PPT Mobile Native
Kotlin Multiplatform project at mobile-native/. Gradle build, shared
Kotlin module, Android app (androidApp/), iOS shell (iosApp/). UI uses
Compose Multiplatform.
When to invoke
Plan vector area is mobile, or Suggested approach references
mobile-native/**. Note: frontend/apps/mobile is a separate
React-Native/Expo app — see ppt-frontend
for that one.
What it gives you
- Module layout
./gradlew quick reference
- ADB requirement (C5, local-only — no cloud bridge equivalent in v1)
Inputs
- A target module (
shared or androidApp)
- An emulator or USB-connected device for UI flows
Module layout
mobile-native/
├── shared/ # KMP shared module — business logic, networking
├── androidApp/ # Android entry point
├── iosApp/ # iOS entry point (Xcode-driven)
├── build.gradle.kts
├── settings.gradle.kts
└── gradle.properties
Steps
- Build:
cd mobile-native && ./gradlew build
cd mobile-native && ./gradlew :shared:build
cd mobile-native && ./gradlew :androidApp:assembleDebug
- Test:
cd mobile-native && ./gradlew test
cd mobile-native && ./gradlew :shared:test
cd mobile-native && ./gradlew test --tests "*<filter>*"
- Install on a connected device/emulator:
cd mobile-native && ./gradlew :androidApp:installDebug
- UI flow verification (C5). Use the
adb-app-control skill —
screenshot, dump UI hierarchy, tap/swipe/type. Requires adb devices
to show at least one device (not unauthorized / offline).
- iOS — open
mobile-native/iosApp in Xcode. Gradle drives the shared
framework; the iOS shell is built natively. Skip the iOS arm unless the
plan explicitly requires it.
Deterministic verification
test -x mobile-native/gradlew && echo OK
java -version 2>&1 | head -1
command -v adb >/dev/null && echo OK
adb devices 2>/dev/null | awk 'NR>1 && $2=="device"' | wc -l
Smoke check (single command)
cd mobile-native && ./gradlew help -q
Expected failure modes on this Mac that are normal:
- If JDK 17+ isn't installed,
gradlew help fails. Install Temurin 17 via
Homebrew (brew install --cask temurin@17) or rely on the Android
Studio JDK.
adb devices returns no device lines if no emulator is running.
That's fine unless the plan needs C5.
The verification harness counts a smoke fail as fail — that's by design.
If the host can't build mobile-native, the implementer can't ship
mobile-native plans from that host.
After-task verification
cd mobile-native && ./gradlew check test
Cross-references