Introducing Kaluga

Mobile Code-Sharing Made Easy

Get Started

Code sharing made easy

Write your common code in one Kotlin package

Coroutine and Flow support

Build with Coroutines and Flows in mind

Bluetooth

Easy Bluetooth integration

Works with Android

Use Kaluga code in your Android projects

Works with Apple

Use Kaluga code in your iOS, iPadOS and macOS projects

Works with JavaScript

Use Kaluga code in your web and WebAssembly projects

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.

Latest Posts

Kaluga 2.0.0-alpha.1213 released

Prerelease: This is an alpha version of Kaluga.

Kaluga 1.3.0 released

Release 1.3.0 upgrades Kaluga to Kotlin 1.9.20

Kaluga 1.2.0 released

We’ve released Kaluga 1.2. This update moves Kaluga to Kotlin 1.8.21 and coroutines 1.7.0. In addition it introduces the Media module.