Common features for Kotlin Multiplatform
Kaluga is a Kotlin Multiplatform framework that offers a variety of independent modules to ease cross-platform app development. With Kaluga you can connect to a system service like Bluetooth or location, request permissions, show alerts, loaders, and date/time pickers, work with scientific units, resources and localization, and much more. This allows you to write the majority of your code in Kotlin while retaining the full power of native code development.
Each module can be imported on its own and supports Android, iOS/iPadOS, macOS, JavaScript and JavaScript WebAssembly wherever the underlying platform allows.
For example, this scans for nearby Bluetooth Low Energy devices, automatically requesting the required permissions and enabling Bluetooth when needed.
// will auto request permissions and try to enable bluetooth
val client = BluetoothClientBuilder().createClient()
client.startScanning()
try {
client.devices().collect {
i("discovered device: $it") // log found device
}
} finally {
client.stopScanning()
}
Swimming up the stream
Kaluga makes extensive use of Kotlin Flow and Coroutines. This enables developers to use cold streams for a modern and efficient design. Modules are thread-safe and provide APIs to easily stream the data you need to your business logic and observe it from your interfaces.
Modern UI
The library has been built with Compose Multiplatform and SwiftUI in mind, so whether you want to use the latest declarative UI practices or prefer to remain on UIKit, Kaluga’s got you covered.