# ShadowrunCharSheet A Kotlin Multiplatform character sheet application for Shadowrun 5th Edition, built with Compose Multiplatform. Supports Android, Desktop (JVM), Web (JS + WASM), and iOS. ## Features - **Character Management** — Create, edit, import/export characters as JSON - **Attributes & Talents** — Full Shadowrun 5e attribute system with 60+ predefined talents - **Dice Rolling** — Built-in dice roller with success counting and roll history - **Damage Monitor** — Stun, physical, and overflow damage tracking with wound modifiers - **Responsive UI** — Adaptive layout with window size classes for all screen sizes - **Theming** — Material 3 with dark/light mode and theme color selection - **Cross-Platform** — Single shared codebase across Android, Desktop, Web, and iOS ## Platforms ### Android To run the application on android device/emulator: - open project in Android Studio and run imported android run configuration To build the application bundle: - run `./gradlew :androidApp:assembleDebug` - find `.apk` file in `androidApp/build/outputs/apk/debug/androidApp-debug.apk` ### Desktop Run the desktop application: `./gradlew :desktopApp:run` Run the desktop **hot reload** application: `./gradlew :desktopApp:hotRun --auto` Build a standalone uber JAR: `./gradlew :desktopApp:packageUberJarForCurrentOS` - find `.jar` file in `desktopApp/build/compose/jars/` ### iOS To run the application on iPhone device/simulator: - Open `iosApp/iosApp.xcproject` in Xcode and run standard configuration - Or use [Kotlin Multiplatform Mobile plugin](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile) for Android Studio ### Web Distribution Build web distribution: `./gradlew :webApp:composeCompatibilityBrowserDistribution` Deploy the dir `webApp/build/dist/composeWebCompatibility/productionExecutable` to a web server ### JS Browser (Development) Run the browser application: `./gradlew :webApp:jsBrowserDevelopmentRun` ### Wasm Browser (Development) Run the browser application: `./gradlew :webApp:wasmJsBrowserDevelopmentRun` ## Testing Run all tests: ``` ./gradlew :sharedUI:allTests ``` Run a single test class: ``` ./gradlew :sharedUI:jvmTest --tests "org.shahondin1624.ComposeTest" ``` ## Architecture Kotlin Multiplatform project with all shared logic and UI in the `sharedUI` module. Platform modules (`androidApp`, `desktopApp`, `webApp`, `iosApp`) are thin entry points. Key dependencies: Compose Multiplatform, kotlinx.serialization, MaterialKolor, KStore, Ktor, Coil. See `CLAUDE.md` for detailed architecture documentation.