Files
ShadowrunCharSheet/README.MD
2026-03-13 15:39:00 +01:00

66 lines
2.5 KiB
Markdown

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