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.