shahondin1624 221b91c902 feat: character state management with ViewModel (Closes #23)
Add CharacterViewModel holding ShadowrunCharacter as observable
StateFlow. Replace direct EXAMPLE_CHARACTER usage in App.kt with
ViewModel state collected via collectAsState(). All composables now
observe ViewModel state for reactive updates. Foundation for editing
stories 6.2-6.6.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 13:33:25 +01:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00
2025-10-25 11:22:27 +02:00

ShadowrunCharSheet

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

iOS

To run the application on iPhone device/simulator:

Web Distribution

Build web distribution: ./gradlew :webApp:composeCompatibilityBrowserDistribution
Deploy a dir webApp/build/dist/composeWebCompatibility/productionExecutable to a web server

JS Browser

Run the browser application: ./gradlew :webApp:jsBrowserDevelopmentRun

Wasm Browser

Run the browser application: ./gradlew :webApp:wasmJsBrowserDevelopmentRun

Description
Kotlin Multiplatform / Compose Multiplatform Shadowrun 5e character sheet app (Android, Desktop, Web, iOS)
Readme 873 KiB
2026-03-13 15:39:17 +01:00
Languages
Kotlin 99.2%
HTML 0.6%
Swift 0.2%