docs: update README with features, build instructions, and desktop JVM toolchain fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
70
README.MD
70
README.MD
@@ -1,29 +1,65 @@
|
|||||||
# ShadowrunCharSheet
|
# ShadowrunCharSheet
|
||||||
|
|
||||||
### Android
|
A Kotlin Multiplatform character sheet application for Shadowrun 5th Edition, built with Compose Multiplatform. Supports Android, Desktop (JVM), Web (JS + WASM), and iOS.
|
||||||
To run the application on android device/emulator:
|
|
||||||
- open project in Android Studio and run imported android run configuration
|
|
||||||
|
|
||||||
To build the application bundle:
|
## Features
|
||||||
- run `./gradlew :androidApp:assembleDebug`
|
|
||||||
- find `.apk` file in `androidApp/build/outputs/apk/debug/androidApp-debug.apk`
|
- **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
|
### Desktop
|
||||||
Run the desktop application: `./gradlew :desktopApp:run`
|
Run the desktop application: `./gradlew :desktopApp:run`
|
||||||
Run the desktop **hot reload** application: `./gradlew :desktopApp:hotRun --auto`
|
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
|
### iOS
|
||||||
To run the application on iPhone device/simulator:
|
To run the application on iPhone device/simulator:
|
||||||
- Open `iosApp/iosApp.xcproject` in Xcode and run standard configuration
|
- 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
|
- Or use [Kotlin Multiplatform Mobile plugin](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile) for Android Studio
|
||||||
|
|
||||||
### Web Distribution
|
### Web Distribution
|
||||||
Build web distribution: `./gradlew :webApp:composeCompatibilityBrowserDistribution`
|
Build web distribution: `./gradlew :webApp:composeCompatibilityBrowserDistribution`
|
||||||
Deploy a dir `webApp/build/dist/composeWebCompatibility/productionExecutable` to a web server
|
Deploy the dir `webApp/build/dist/composeWebCompatibility/productionExecutable` to a web server
|
||||||
|
|
||||||
### JS Browser
|
### JS Browser (Development)
|
||||||
Run the browser application: `./gradlew :webApp:jsBrowserDevelopmentRun`
|
Run the browser application: `./gradlew :webApp:jsBrowserDevelopmentRun`
|
||||||
|
|
||||||
### Wasm Browser
|
### Wasm Browser (Development)
|
||||||
Run the browser application: `./gradlew :webApp:wasmJsBrowserDevelopmentRun`
|
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.
|
||||||
|
|||||||
@@ -8,6 +8,10 @@ plugins {
|
|||||||
alias(libs.plugins.compose.hot.reload)
|
alias(libs.plugins.compose.hot.reload)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
jvmToolchain(24)
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":sharedUI"))
|
implementation(project(":sharedUI"))
|
||||||
implementation(compose.ui)
|
implementation(compose.ui)
|
||||||
|
|||||||
Reference in New Issue
Block a user