Skip to content

Getting Started

Try It Online

The Soil library for Kotlin Multiplatform now includes experimental support for Kotlin Wasm. If your browser supports WasmGC, you can run the sample app directly in the browser.

👉 Sample App

Source code: https://github.com/soil-kt/soil/tree/1.0.0-alpha09/sample/

Browser Support for WasmGC

Currently, the only browsers that support WasmGC are Chrome and Firefox. For the latest compatibility information, please visit https://webassembly.org/features/.

Download

  1. Prepare a Kotlin Multiplatform project or an Android project

Recommendation

If you are starting a new Kotlin Multiplatform project, tools like the Kotlin Multiplatform Wizard or the Compose Multiplatform Wizard can be very helpful.

  1. Add Maven Central to your repositories if needed
kts
repositories {
    mavenCentral()
}
  1. Add the desired dependencies to your module's build.gradle file
kts
dependencies {
    val soil = "1.0.0-alpha09"

    // Query
    implementation("com.soil-kt.soil:query-core:$soil")
    // Query for Compose
    implementation("com.soil-kt.soil:query-compose:$soil")
    // optional - experimental helpers for Compose
    implementation("com.soil-kt.soil:query-compose-runtime:$soil")
    // optional - receivers for Ktor (3.x)
    implementation("com.soil-kt.soil:query-receivers-ktor:$soil")
    // optional - Test helpers
    testImplementation("com.soil-kt.soil:query-test:$soil")

    // Form
    implementation("com.soil-kt.soil:form:$soil")

    // Space
    implementation("com.soil-kt.soil:space:$soil")
}
yaml
[versions]
soil = "1.0.0-alpha09"

[libraries]
# Query
soil-query-core = { module = "com.soil-kt.soil:query-core", version.ref = "soil" }
# Query for Compose
soil-query-compose = { module = "com.soil-kt.soil:query-compose", version.ref = "soil" }
# optional - experimental helpers for Compose
soil-query-compose-runtime = { module = "com.soil-kt.soil:query-compose-runtime", version.ref = "soil" }
# optional - receivers for Ktor (3.x)
soil-query-receivers-ktor = { module = "com.soil-kt.soil:query-receivers-ktor", version.ref = "soil" }
# optional - Test helpers
soil-query-test = { module = "com.soil-kt.soil:query-test", version.ref = "soil" }
# Form
soil-form = { module = "com.soil-kt.soil:form", version.ref = "soil" }
# Space
soil-space = { module = "com.soil-kt.soil:space", version.ref = "soil" }

Compose Multiplatform compatibility

Supported targets:

  • Android
  • iOS
  • Desktop (JVM)
  • Web (Wasm)

What's Next?

Try out the features you're interested in right away!

🌱 Query - A seamless data fetching and caching. written more declaratively, leading to more readable code.

🌱 Form - A extensible validation control and form state management. minimizes the impact of re-composition.

🌱 Space - A flexible scoped state management. collaborating with the navigation library to create new scopes.

Love the project? ⭐ it on GitHub and help us make it even better!