bootstrap android and ios apps

This commit is contained in:
pj committed 2026-09-09 22:39:07 +05:30
1 parent 339db54e8f
commit bad6bce051
28 files changed
+1136 -1

No files matched your search

+33
View File
@@ -0,0 +1,33 @@
# Bert's Atlas
Bert's Atlas is an offline geography trivia game for Android and iOS. Product behavior and acceptance criteria live in `spec.md`; engineering principles live in `principles.md`.
## Project layout
- `domain`: pure multiplatform quiz and progression rules
- `composeApp`: shared Compose UI and platform-neutral application code
- `androidApp`: thin Android launcher required by Android Gradle Plugin 9
- `catalogTool`: JVM catalog validator and human-review report generator
- `iosApp`: thin Xcode host for the shared Compose framework
The extra Android launcher is deliberate. AGP 9 does not support combining `com.android.application` and Kotlin Multiplatform in one module, so the three substantive modules remain separate from both thin platform hosts.
## Toolchain
Builds use JDK 21 and the checked-in Gradle wrapper. Compose Multiplatform 1.12 requires Android compile SDK 37; target SDK remains 36 and minimum SDK is 26.
```sh
export JAVA_HOME=/opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home
./gradlew :androidApp:assembleDebug
./gradlew :composeApp:linkDebugFrameworkIosSimulatorArm64
./gradlew :catalogTool:run
```
Generate the Xcode project after changing `iosApp/project.yml`:
```sh
cd iosApp
xcodegen generate
```
No automated test sources or test dependencies are part of V1. Verification is manual and release catalog validation is performed by `catalogTool`.