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

2.5 KiB

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:

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.