
A collection of utilities offering core classes, UI components for desktop and Android, table composables, and demo applications for creating demonstration activities and applications.
[!NOTE] This library currently is for my personal usage only. I do use it in production, but have not yet documented it properly.
| Module | android | iOS | windows | wasm | Notes |
|---|---|---|---|---|---|
| core | ✅ | ✅ | ✅ | ✅ | the core module |
| app | ✅ | ✅ | ✅ | ✅ | the base app module |
| ui | ✅ | ✅ | ✅ | ✅ | a ui module |
| ui-adaptive | ✅ | ✅ | ✅ | ✅ | a adaptive ui module |
| zip | ✅ | ✅ | ✅ | ✅ | a zip module |
| csv | ✅ | ❌ | ✅ | ❌ | a csv module |
| backup | ✅ | ✅ | ✅ | ✅ | a backup module |
| service | ✅ | ❌ | ❌ | ❌ | a service module |
| form | ✅ | ✅ | ✅ | ✅ | a form module |
| powershell | ❌ | ❌ | ✅ | ❌ | a powershell module |
| table | ✅ | ✅ | ✅ | ✅ | a table module |
| room | ✅ | ✅ | ✅ | ❌ | provides room database classes |
| ads | ✅ | ✅ | ✅ | ✅ | provides ads composables |
| proversion | ✅ | ✅ | ❌ | ❌ | provides proversion checker functions (via openiap) |
| diff | ✅ | ✅ | ✅ | ✅ | diff functions and UI |
| excel | ❌ | ❌ | ✅ | ❌ | excel functions |
| coil | ✅ | ✅ | ✅ | ✅ | a coil module |
| Dependency | Version |
|---|---|
| Kotlin | 2.4.0 |
| Jetbrains Compose | 1.11.1 |
| Jetbrains Compose Material3 | 1.9.0 |
⚠️ Following experimental annotations are used:
- OptIn
androidx.compose.animation.ExperimentalSharedTransitionApi(2x)androidx.compose.foundation.ExperimentalFoundationApi(1x)androidx.compose.foundation.layout.ExperimentalLayoutApi(1x)androidx.compose.material3.ExperimentalMaterial3Api(18x)androidx.compose.ui.ExperimentalComposeUiApi(10x)app.lexilabs.basic.ads.DependsOnGoogleMobileAds(3x)app.lexilabs.basic.ads.DependsOnGoogleUserMessagingPlatform(6x)cafe.adriel.voyager.core.annotation.ExperimentalVoyagerApi(4x)ExperimentalWasmJsInterop(1x)kotlin.time.ExperimentalTime(15x)kotlin.uuid.ExperimentalUuidApi(2x)kotlinx.cinterop.ExperimentalForeignApi(2x)kotlinx.coroutines.FlowPreview(1x)- Experimental
androidx.compose.material3.ExperimentalMaterial3Api(1x)I try to use as less experimental features as possible, but in this case the ones above are needed!
Define the dependencies inside your libs.versions.toml file.
[versions]
toolbox = "<LATEST-VERSION>"
[libraries]
toolbox-core = { module = "io.github.mflisar.toolbox:core", version.ref = "toolbox" }
toolbox-app = { module = "io.github.mflisar.toolbox:app", version.ref = "toolbox" }
toolbox-ui = { module = "io.github.mflisar.toolbox:ui", version.ref = "toolbox" }
toolbox-ui-adaptive = { module = "io.github.mflisar.toolbox:ui-adaptive", version.ref = "toolbox" }
toolbox-zip = { module = "io.github.mflisar.toolbox:zip", version.ref = "toolbox" }
toolbox-csv = { module = "io.github.mflisar.toolbox:csv", version.ref = "toolbox" }
toolbox-backup = { module = "io.github.mflisar.toolbox:backup", version.ref = "toolbox" }
toolbox-service = { module = "io.github.mflisar.toolbox:service", version.ref = "toolbox" }
toolbox-form = { module = "io.github.mflisar.toolbox:form", version.ref = "toolbox" }
toolbox-powershell = { module = "io.github.mflisar.toolbox:powershell", version.ref = "toolbox" }
toolbox-table = { module = "io.github.mflisar.toolbox:table", version.ref = "toolbox" }
toolbox-room = { module = "io.github.mflisar.toolbox:room", version.ref = "toolbox" }
toolbox-ads = { module = "io.github.mflisar.toolbox:ads", version.ref = "toolbox" }
toolbox-proversion = { module = "io.github.mflisar.toolbox:proversion", version.ref = "toolbox" }
toolbox-diff = { module = "io.github.mflisar.toolbox:diff", version.ref = "toolbox" }
toolbox-excel = { module = "io.github.mflisar.toolbox:excel", version.ref = "toolbox" }
toolbox-coil = { module = "io.github.mflisar.toolbox:coil", version.ref = "toolbox" }And then use the definitions in your projects build.gradle.kts file like following:
implementation(libs.toolbox.core)
implementation(libs.toolbox.app)
implementation(libs.toolbox.ui)
implementation(libs.toolbox.ui.adaptive)
implementation(libs.toolbox.zip)
implementation(libs.toolbox.csv)
implementation(libs.toolbox.backup)
implementation(libs.toolbox.service)
implementation(libs.toolbox.form)
implementation(libs.toolbox.powershell)
implementation(libs.toolbox.table)
implementation(libs.toolbox.room)
implementation(libs.toolbox.ads)
implementation(libs.toolbox.proversion)
implementation(libs.toolbox.diff)
implementation(libs.toolbox.excel)
implementation(libs.toolbox.coil)Simply add the dependencies inside your build.gradle.kts file.
val toolbox = "<LATEST-VERSION>"
implementation("io.github.mflisar.toolbox:core:${toolbox}")
implementation("io.github.mflisar.toolbox:app:${toolbox}")
implementation("io.github.mflisar.toolbox:ui:${toolbox}")
implementation("io.github.mflisar.toolbox:ui-adaptive:${toolbox}")
implementation("io.github.mflisar.toolbox:zip:${toolbox}")
implementation("io.github.mflisar.toolbox:csv:${toolbox}")
implementation("io.github.mflisar.toolbox:backup:${toolbox}")
implementation("io.github.mflisar.toolbox:service:${toolbox}")
implementation("io.github.mflisar.toolbox:form:${toolbox}")
implementation("io.github.mflisar.toolbox:powershell:${toolbox}")
implementation("io.github.mflisar.toolbox:table:${toolbox}")
implementation("io.github.mflisar.toolbox:room:${toolbox}")
implementation("io.github.mflisar.toolbox:ads:${toolbox}")
implementation("io.github.mflisar.toolbox:proversion:${toolbox}")
implementation("io.github.mflisar.toolbox:diff:${toolbox}")
implementation("io.github.mflisar.toolbox:excel:${toolbox}")
implementation("io.github.mflisar.toolbox:coil:${toolbox}")[!IMPORTANT] NOT DOCUMENTED
A full demo is included inside the demo module, it shows nearly every usage with working examples.
Check out the API documentation.
You can find more of my multiplatform libraries that work well together here.
When combining my libraries, you can find compatibility information here.
[!NOTE] This library currently is for my personal usage only. I do use it in production, but have not yet documented it properly.
| Module | android | iOS | windows | wasm | Notes |
|---|---|---|---|---|---|
| core | ✅ | ✅ | ✅ | ✅ | the core module |
| app | ✅ | ✅ | ✅ | ✅ | the base app module |
| ui | ✅ | ✅ | ✅ | ✅ | a ui module |
| ui-adaptive | ✅ | ✅ | ✅ | ✅ | a adaptive ui module |
| zip | ✅ | ✅ | ✅ | ✅ | a zip module |
| csv | ✅ | ❌ | ✅ | ❌ | a csv module |
| backup | ✅ | ✅ | ✅ | ✅ | a backup module |
| service | ✅ | ❌ | ❌ | ❌ | a service module |
| form | ✅ | ✅ | ✅ | ✅ | a form module |
| powershell | ❌ | ❌ | ✅ | ❌ | a powershell module |
| table | ✅ | ✅ | ✅ | ✅ | a table module |
| room | ✅ | ✅ | ✅ | ❌ | provides room database classes |
| ads | ✅ | ✅ | ✅ | ✅ | provides ads composables |
| proversion | ✅ | ✅ | ❌ | ❌ | provides proversion checker functions (via openiap) |
| diff | ✅ | ✅ | ✅ | ✅ | diff functions and UI |
| excel | ❌ | ❌ | ✅ | ❌ | excel functions |
| coil | ✅ | ✅ | ✅ | ✅ | a coil module |
| Dependency | Version |
|---|---|
| Kotlin | 2.4.0 |
| Jetbrains Compose | 1.11.1 |
| Jetbrains Compose Material3 | 1.9.0 |
⚠️ Following experimental annotations are used:
- OptIn
androidx.compose.animation.ExperimentalSharedTransitionApi(2x)androidx.compose.foundation.ExperimentalFoundationApi(1x)androidx.compose.foundation.layout.ExperimentalLayoutApi(1x)androidx.compose.material3.ExperimentalMaterial3Api(18x)androidx.compose.ui.ExperimentalComposeUiApi(10x)app.lexilabs.basic.ads.DependsOnGoogleMobileAds(3x)app.lexilabs.basic.ads.DependsOnGoogleUserMessagingPlatform(6x)cafe.adriel.voyager.core.annotation.ExperimentalVoyagerApi(4x)ExperimentalWasmJsInterop(1x)kotlin.time.ExperimentalTime(15x)kotlin.uuid.ExperimentalUuidApi(2x)kotlinx.cinterop.ExperimentalForeignApi(2x)kotlinx.coroutines.FlowPreview(1x)- Experimental
androidx.compose.material3.ExperimentalMaterial3Api(1x)I try to use as less experimental features as possible, but in this case the ones above are needed!
Define the dependencies inside your libs.versions.toml file.
[versions]
toolbox = "<LATEST-VERSION>"
[libraries]
toolbox-core = { module = "io.github.mflisar.toolbox:core", version.ref = "toolbox" }
toolbox-app = { module = "io.github.mflisar.toolbox:app", version.ref = "toolbox" }
toolbox-ui = { module = "io.github.mflisar.toolbox:ui", version.ref = "toolbox" }
toolbox-ui-adaptive = { module = "io.github.mflisar.toolbox:ui-adaptive", version.ref = "toolbox" }
toolbox-zip = { module = "io.github.mflisar.toolbox:zip", version.ref = "toolbox" }
toolbox-csv = { module = "io.github.mflisar.toolbox:csv", version.ref = "toolbox" }
toolbox-backup = { module = "io.github.mflisar.toolbox:backup", version.ref = "toolbox" }
toolbox-service = { module = "io.github.mflisar.toolbox:service", version.ref = "toolbox" }
toolbox-form = { module = "io.github.mflisar.toolbox:form", version.ref = "toolbox" }
toolbox-powershell = { module = "io.github.mflisar.toolbox:powershell", version.ref = "toolbox" }
toolbox-table = { module = "io.github.mflisar.toolbox:table", version.ref = "toolbox" }
toolbox-room = { module = "io.github.mflisar.toolbox:room", version.ref = "toolbox" }
toolbox-ads = { module = "io.github.mflisar.toolbox:ads", version.ref = "toolbox" }
toolbox-proversion = { module = "io.github.mflisar.toolbox:proversion", version.ref = "toolbox" }
toolbox-diff = { module = "io.github.mflisar.toolbox:diff", version.ref = "toolbox" }
toolbox-excel = { module = "io.github.mflisar.toolbox:excel", version.ref = "toolbox" }
toolbox-coil = { module = "io.github.mflisar.toolbox:coil", version.ref = "toolbox" }And then use the definitions in your projects build.gradle.kts file like following:
implementation(libs.toolbox.core)
implementation(libs.toolbox.app)
implementation(libs.toolbox.ui)
implementation(libs.toolbox.ui.adaptive)
implementation(libs.toolbox.zip)
implementation(libs.toolbox.csv)
implementation(libs.toolbox.backup)
implementation(libs.toolbox.service)
implementation(libs.toolbox.form)
implementation(libs.toolbox.powershell)
implementation(libs.toolbox.table)
implementation(libs.toolbox.room)
implementation(libs.toolbox.ads)
implementation(libs.toolbox.proversion)
implementation(libs.toolbox.diff)
implementation(libs.toolbox.excel)
implementation(libs.toolbox.coil)Simply add the dependencies inside your build.gradle.kts file.
val toolbox = "<LATEST-VERSION>"
implementation("io.github.mflisar.toolbox:core:${toolbox}")
implementation("io.github.mflisar.toolbox:app:${toolbox}")
implementation("io.github.mflisar.toolbox:ui:${toolbox}")
implementation("io.github.mflisar.toolbox:ui-adaptive:${toolbox}")
implementation("io.github.mflisar.toolbox:zip:${toolbox}")
implementation("io.github.mflisar.toolbox:csv:${toolbox}")
implementation("io.github.mflisar.toolbox:backup:${toolbox}")
implementation("io.github.mflisar.toolbox:service:${toolbox}")
implementation("io.github.mflisar.toolbox:form:${toolbox}")
implementation("io.github.mflisar.toolbox:powershell:${toolbox}")
implementation("io.github.mflisar.toolbox:table:${toolbox}")
implementation("io.github.mflisar.toolbox:room:${toolbox}")
implementation("io.github.mflisar.toolbox:ads:${toolbox}")
implementation("io.github.mflisar.toolbox:proversion:${toolbox}")
implementation("io.github.mflisar.toolbox:diff:${toolbox}")
implementation("io.github.mflisar.toolbox:excel:${toolbox}")
implementation("io.github.mflisar.toolbox:coil:${toolbox}")[!IMPORTANT] NOT DOCUMENTED
A full demo is included inside the demo module, it shows nearly every usage with working examples.
Check out the API documentation.
You can find more of my multiplatform libraries that work well together here.
When combining my libraries, you can find compatibility information here.