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 iOS

Use Kaluga code in your iOS projects

Making your Kotlin Multiplatform Mobile development easy

Kaluga is a Kotlin Multiplatform Mobile Framework that offers a variety of modules to ease app development. With Kaluga you can quickly set up your MVVM architecture, connect to a system service like Bluetooth or location, show alerts, loaders, and date/time pickers, and much more. This allows your to write the majority of your code in Kotlin while retaining the full power of native code development.

For example, this ViewModel gets the users geolocation and shows its coordinates in an alert, requesting permissions or enabling location services when needed.

class ExampleViewModel(
	locationStateRepoBuilder: LocationStateRepoBuilder,
	alertPresenterBuilder: BaseAlertPresenter.Builder
) : BaseLifecycleViewModel(alertPresenterBuilder) {

    private val locationStateRepo = locationStateRepoBuilder.create(
    	LocationPermission(precise = true),
    	coroutineScope.coroutineContext
    )

    init {
        coroutineScope.launch {
            val location = locationStateRepo.location().known().filterNotNull().first()
            alertPresenterBuilder.buildAlert(this) {
                setTitle("Your location")
                setMessage("${location.latitudeDMS} ${location.longitudeDMS}")
                setNegativeButton("OK")
            }.show()
        }
    }

}

Swimming up the stream

Kaluga makes extensive use of Kotlin Flow and Coroutines. his 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 build with Jetpack Compose and SwiftUI in mind, so whether you want to use the latest UI practices or prefer to remain on UIKit or Android Data Binding, Kaluga’s got you covered.

Latest Posts

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.

Kaluga 1.1.0 released

We’ve released Kaluga 1.1. This update focuesses on improving the stability and flexibility of the Bluetooth Module.