
Modular primitives for common mobile system tasks—share, haptic, torch, screen, clipboard, badge, in‑app review—with explicit APIs, minimal dependencies and Compose helpers.
Small, focused Kotlin Multiplatform primitives for common mobile system tasks.
Garnish is a modular KMP suite for system-level features that should be easy to use across Android and iOS.
Add dependencies from Maven Central:
repositories {
google()
mavenCentral()
}
dependencies {
commonMainImplementation("io.github.szijpeter:garnish-share:<version>")
commonMainImplementation("io.github.szijpeter:garnish-share-compose:<version>") // Compose helper module
commonMainImplementation("io.github.szijpeter:garnish-review:<version>")
// Pick only the modules your app needs.
}@Composable
fun ShareExample() {
val shareKit = rememberShareKit()
Button(onClick = { shareKit.shareText("Don't panic.") }) {
Text("Share")
}
}./gradlew check apiCheck --no-daemon
./gradlew publishToMavenLocal --no-daemonIn a local consumer project during development:
repositories {
mavenLocal()
google()
mavenCentral()
}Publishing guide: docs/MAVEN_CENTRAL.md
| Module(s) | Description |
|---|---|
share + share-compose
|
Share text, URL, image, file and Compose rememberShareKit() helper |
haptic + haptic-compose
|
Cross-platform haptic feedback and Compose engine/modifier helpers |
torch + torch-compose
|
Flashlight control and Compose rememberTorch() helper |
screen + screen-compose
|
Brightness, keep-screen-on, orientation and Compose lifecycle helpers |
badge |
App icon badge count |
clipboard + clipboard-compose
|
Rich clipboard and Compose rememberRichClipboard() helper |
review |
In-app review request API |
Compose sample UI covering all modules: composeApp/src/commonMain/kotlin/dev/garnish/app/App.kt
| Android | iOS |
|---|---|
License: Apache-2.0. See LICENSE.
Small, focused Kotlin Multiplatform primitives for common mobile system tasks.
Garnish is a modular KMP suite for system-level features that should be easy to use across Android and iOS.
Add dependencies from Maven Central:
repositories {
google()
mavenCentral()
}
dependencies {
commonMainImplementation("io.github.szijpeter:garnish-share:<version>")
commonMainImplementation("io.github.szijpeter:garnish-share-compose:<version>") // Compose helper module
commonMainImplementation("io.github.szijpeter:garnish-review:<version>")
// Pick only the modules your app needs.
}@Composable
fun ShareExample() {
val shareKit = rememberShareKit()
Button(onClick = { shareKit.shareText("Don't panic.") }) {
Text("Share")
}
}./gradlew check apiCheck --no-daemon
./gradlew publishToMavenLocal --no-daemonIn a local consumer project during development:
repositories {
mavenLocal()
google()
mavenCentral()
}Publishing guide: docs/MAVEN_CENTRAL.md
| Module(s) | Description |
|---|---|
share + share-compose
|
Share text, URL, image, file and Compose rememberShareKit() helper |
haptic + haptic-compose
|
Cross-platform haptic feedback and Compose engine/modifier helpers |
torch + torch-compose
|
Flashlight control and Compose rememberTorch() helper |
screen + screen-compose
|
Brightness, keep-screen-on, orientation and Compose lifecycle helpers |
badge |
App icon badge count |
clipboard + clipboard-compose
|
Rich clipboard and Compose rememberRichClipboard() helper |
review |
In-app review request API |
Compose sample UI covering all modules: composeApp/src/commonMain/kotlin/dev/garnish/app/App.kt
| Android | iOS |
|---|---|
License: Apache-2.0. See LICENSE.