A Kotlin Multiplatform toolkit for common app and device capabilities on Android and iOS.
- App lifecycle monitoring.
- App and device information.
- Clipboard read/write and observation.
- Network state monitoring.
- Keyboard visibility monitoring.
- Haptic feedback.
- Sensor observation.
- App navigation helpers for settings, app permissions, content, URLs, email, dial, SMS, and store pages.
- System share sheet helpers.
- File picking, directory picking, file save helpers, and image gallery saving.
Add the dependency in commonMain:
kotlin {
sourceSets {
commonMain.dependencies {
implementation("com.airsaid:toolkit:$version")
}
}
}Make sure Maven Central is available:
repositories {
mavenCentral()
}Android apps must initialize the toolkit before using platform-backed APIs. iOS does not need an initialization call.
class DemoApp : Application() {
override fun onCreate() {
super.onCreate()
Toolkit.initialize(applicationContext)
}
}val appInfo = Toolkit.appInfo()
println(appInfo.versionName)
val device = Toolkit.deviceInfo()
println(device.systemVersion)
val networkMonitor = Toolkit.network()
scope.launch {
println(networkMonitor.getCurrentNetworkStatus().isConnected)
}
val clipboard = Toolkit.clipboard()
scope.launch {
clipboard.setText("hello")
}
val haptics = Toolkit.haptics()
haptics.perform(HapticFeedbackType.SUCCESS)Detailed usage guide: toolkit/README.md
The Android artifact declares the permissions needed by toolkit features:
ACCESS_NETWORK_STATE
Clipboard, content opening, and share helpers use a FileProvider authority based on the consuming app id:
${applicationId}.toolkit-clipboard.
- Android: minSdk 24, compileSdk 36, JVM target 17
- iOS: iosArm64, iosX64, iosSimulatorArm64
- Kotlin: 2.2.21
- Change log: CHANGELOG.md
- Release process: docs/releasing.md
Apache-2.0. See LICENSE.