
Toolkit offers reusable components like a state machine, recycler adapter, event observer, delegate properties, and foldable state handling to streamline software development.
Kotlin Multiplatform utilities collected from real-world architecture work, shared as focused modules you can mix and match across platforms.
Provide production-ready Kotlin Multiplatform (KMP) building blocks for state management, storage, delegation utilities, and platform integrations while keeping APIs lightweight and well tested. Each module is released when it reaches a stable level of documentation, CI coverage, and publishing automation.
| Module | Gradle Artifact | Stability | Supported Targets | Highlights |
|---|---|---|---|---|
toolkit/multi/storage-core |
io.github.matheus-corregiari:storage-core |
Stable | Android, JVM, iOS, macOS, JS (stub), WASM (stub) | Reactive key–value storage contract with Flow support. |
toolkit/multi/storage-datastore |
io.github.matheus-corregiari:storage-datastore |
Beta | Android, JVM, iOS, macOS | DataStore-backed implementation for persistent storage. |
toolkit/multi/storage-memory |
io.github.matheus-corregiari:storage-memory |
Stable | All KMP targets | In-memory storage for tests and ephemeral state. |
toolkit/multi/event-observer |
io.github.matheus-corregiari:event-observer |
Beta | Android, JVM, iOS, macOS | Multiplatform event channels with lifecycle awareness. |
toolkit/multi/event-observer-compose |
io.github.matheus-corregiari:event-observer-compose |
Experimental | Android | Compose extensions for event observers. |
toolkit/multi/state-handle |
io.github.matheus-corregiari:state-handle |
Incubating | Android, JVM | Lifecycle-friendly state persistence for shared logic. |
toolkit/multi/splinter |
io.github.matheus-corregiari:splinter |
Work in Progress | Android, JVM, iOS, macOS | Code generation helpers for DI-less modularization. |
toolkit/android/statemachine |
io.github.matheus-corregiari:statemachine |
Stable | Android | Declarative state transitions for UI flows. |
toolkit/android/recycler-adapter |
io.github.matheus-corregiari:recycler-adapter |
Stable | Android | RecyclerView adapter utilities with View binding hooks. |
toolkit/android/delegate |
io.github.matheus-corregiari:delegate |
Stable | Android | Kotlin property delegates for Android components. |
toolkit/android/foldable |
io.github.matheus-corregiari:foldable |
Beta | Android | Jetpack Window Manager helpers for foldable devices. |
toolkit/android/storage |
io.github.matheus-corregiari:storage |
Deprecated | Android | Legacy storage helpers superseded by KMP storage modules. |
toolkit/android/util |
io.github.matheus-corregiari:util |
Deprecated | Android | Legacy utility extensions scheduled for archival. |
ℹ️ Detailed usage guides for every module live inside their respective directories. All READMEs follow the same structure with badges, installation instructions, usage examples, and licensing notes for easy scanning.
| Stability Level | Description |
|---|---|
| Stable | API ready for production; published to Maven Central with semantic versioning. |
| Beta | Feature complete but gathering feedback; expect minor API adjustments. |
| Experimental | Available for early adopters; APIs may change between releases. |
| Incubating / Work in Progress | Under heavy development; not yet published. |
| Deprecated | Maintained for compatibility only; prefer the newer KMP alternatives. |
| Platform | Status | Notes |
|---|---|---|
| Android / JVM | ✅ | Primary target with full CI coverage. |
| iOS / macOS | ✅ | Supported across storage and logging modules via KMP. |
| JavaScript | Storage modules provide stub implementations; APIs compile but act as no-ops. | |
| WASM | Follows the same stub strategy as JavaScript until runtime libraries mature. | |
| Desktop (Compose) | 🚧 | Planned via shared KMP modules; follow the roadmap. |
Add the toolkit artifacts you need to your shared module. Examples below use the Kotlin Multiplatform DSL with version catalogs.
// settings.gradle.kts
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")// gradle/libs.versions.toml
[versions]
arch-toolkit = "<latest-version>"
[libraries]
storage-core = { module = "io.github.matheus-corregiari:storage-core", version.ref = "arch-toolkit" }// build.gradle.kts
kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation(libs.storage.core)
implementation("io.github.matheus-corregiari:storage-datastore:<latest-version>")
}
}
val androidMain by getting {
dependencies {
implementation("io.github.matheus-corregiari:event-observer-compose:<latest-version>")
}
}
}
}Tip: Align versions through your version catalog to keep every toolkit module on the same release train.
Flow and state() helpers. See toolkit/multi/storage-core.event-observer channel APIs.statemachine.delegate.Every module README includes installation, setup walkthroughs, and runnable snippets to get you productive fast.
The project wiki consolidates in-depth guides and operational processes:
Each section mirrors the structure used across READMEs, keeping terminology and tone consistent. Feel free to open issues suggesting additional topics.
Licensed under the Apache License 2.0. Refer to individual module READMEs for any additional notes.
Pull requests are always welcome! Start with the contribution guide to learn about tooling, coding standards, and CI expectations. For ideas, check the roadmap and join discussions in GitHub issues.
Kotlin Multiplatform utilities collected from real-world architecture work, shared as focused modules you can mix and match across platforms.
Provide production-ready Kotlin Multiplatform (KMP) building blocks for state management, storage, delegation utilities, and platform integrations while keeping APIs lightweight and well tested. Each module is released when it reaches a stable level of documentation, CI coverage, and publishing automation.
| Module | Gradle Artifact | Stability | Supported Targets | Highlights |
|---|---|---|---|---|
toolkit/multi/storage-core |
io.github.matheus-corregiari:storage-core |
Stable | Android, JVM, iOS, macOS, JS (stub), WASM (stub) | Reactive key–value storage contract with Flow support. |
toolkit/multi/storage-datastore |
io.github.matheus-corregiari:storage-datastore |
Beta | Android, JVM, iOS, macOS | DataStore-backed implementation for persistent storage. |
toolkit/multi/storage-memory |
io.github.matheus-corregiari:storage-memory |
Stable | All KMP targets | In-memory storage for tests and ephemeral state. |
toolkit/multi/event-observer |
io.github.matheus-corregiari:event-observer |
Beta | Android, JVM, iOS, macOS | Multiplatform event channels with lifecycle awareness. |
toolkit/multi/event-observer-compose |
io.github.matheus-corregiari:event-observer-compose |
Experimental | Android | Compose extensions for event observers. |
toolkit/multi/state-handle |
io.github.matheus-corregiari:state-handle |
Incubating | Android, JVM | Lifecycle-friendly state persistence for shared logic. |
toolkit/multi/splinter |
io.github.matheus-corregiari:splinter |
Work in Progress | Android, JVM, iOS, macOS | Code generation helpers for DI-less modularization. |
toolkit/android/statemachine |
io.github.matheus-corregiari:statemachine |
Stable | Android | Declarative state transitions for UI flows. |
toolkit/android/recycler-adapter |
io.github.matheus-corregiari:recycler-adapter |
Stable | Android | RecyclerView adapter utilities with View binding hooks. |
toolkit/android/delegate |
io.github.matheus-corregiari:delegate |
Stable | Android | Kotlin property delegates for Android components. |
toolkit/android/foldable |
io.github.matheus-corregiari:foldable |
Beta | Android | Jetpack Window Manager helpers for foldable devices. |
toolkit/android/storage |
io.github.matheus-corregiari:storage |
Deprecated | Android | Legacy storage helpers superseded by KMP storage modules. |
toolkit/android/util |
io.github.matheus-corregiari:util |
Deprecated | Android | Legacy utility extensions scheduled for archival. |
ℹ️ Detailed usage guides for every module live inside their respective directories. All READMEs follow the same structure with badges, installation instructions, usage examples, and licensing notes for easy scanning.
| Stability Level | Description |
|---|---|
| Stable | API ready for production; published to Maven Central with semantic versioning. |
| Beta | Feature complete but gathering feedback; expect minor API adjustments. |
| Experimental | Available for early adopters; APIs may change between releases. |
| Incubating / Work in Progress | Under heavy development; not yet published. |
| Deprecated | Maintained for compatibility only; prefer the newer KMP alternatives. |
| Platform | Status | Notes |
|---|---|---|
| Android / JVM | ✅ | Primary target with full CI coverage. |
| iOS / macOS | ✅ | Supported across storage and logging modules via KMP. |
| JavaScript | Storage modules provide stub implementations; APIs compile but act as no-ops. | |
| WASM | Follows the same stub strategy as JavaScript until runtime libraries mature. | |
| Desktop (Compose) | 🚧 | Planned via shared KMP modules; follow the roadmap. |
Add the toolkit artifacts you need to your shared module. Examples below use the Kotlin Multiplatform DSL with version catalogs.
// settings.gradle.kts
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")// gradle/libs.versions.toml
[versions]
arch-toolkit = "<latest-version>"
[libraries]
storage-core = { module = "io.github.matheus-corregiari:storage-core", version.ref = "arch-toolkit" }// build.gradle.kts
kotlin {
sourceSets {
val commonMain by getting {
dependencies {
implementation(libs.storage.core)
implementation("io.github.matheus-corregiari:storage-datastore:<latest-version>")
}
}
val androidMain by getting {
dependencies {
implementation("io.github.matheus-corregiari:event-observer-compose:<latest-version>")
}
}
}
}Tip: Align versions through your version catalog to keep every toolkit module on the same release train.
Flow and state() helpers. See toolkit/multi/storage-core.event-observer channel APIs.statemachine.delegate.Every module README includes installation, setup walkthroughs, and runnable snippets to get you productive fast.
The project wiki consolidates in-depth guides and operational processes:
Each section mirrors the structure used across READMEs, keeping terminology and tone consistent. Feel free to open issues suggesting additional topics.
Licensed under the Apache License 2.0. Refer to individual module READMEs for any additional notes.
Pull requests are always welcome! Start with the contribution guide to learn about tooling, coding standards, and CI expectations. For ideas, check the roadmap and join discussions in GitHub issues.