KmpLibrary

SweetMeSoft KMP Library

Welcome to the official documentation of SweetMeSoft KMP Library! A complete multiplatform library for Kotlin that allows you to create native applications for Android and iOS with a shared codebase.

What is SweetMeSoft KMP Library?

SweetMeSoft KMP Library is a collection of specialized modules that provide:

Available Modules

KMPControls

Fundamental UI components like date pickers, dialogs, text fields and validation utilities.

View Documentation

KMPMaps

Complete maps integration with Google Maps for Android and MapKit for iOS, including markers and geolocation.

View Documentation

Library

Main module with advanced components, navigation, network utilities, image handling and base architecture.

View Documentation

KMPTestApp

Example application that demonstrates the use of all modules with practical implementations and best practices.

View Documentation

Quick Start

1. Add Dependencies

In your libs.versions.toml file:

[versions]
sweetmesoft = "2.0.1"

[libraries]
sweetmesoft-kmpcontrols = { module = "com.sweetmesoft.kmpcontrols:kmpcontrols", version.ref = "sweetmesoft" }
sweetmesoft-kmpmaps = { module = "com.sweetmesoft.kmpmaps:kmpmaps", version.ref = "sweetmesoft" }
sweetmesoft-library = { module = "com.sweetmesoft:library", version.ref = "sweetmesoft" }

In your build.gradle.kts:

commonMain.dependencies {
    implementation(libs.sweetmesoft.kmpcontrols)
    implementation(libs.sweetmesoft.kmpmaps)
    implementation(libs.sweetmesoft.library)
}

2. Configure your Application

@Composable
fun App() {
    MaterialTheme {
        Navigator(screen = MainScreen()) { navigator ->
            BaseViewModel.navigator = navigator
            SlideTransition(navigator)
        }
    }
}

3. Use Components

@Composable
fun MyScreen() {
    var selectedDate by remember { mutableStateOf(Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()).date) }
    var password by remember { mutableStateOf("") }
    
    Column {
        // Date picker from KMPControls
        DatePicker(
            value = selectedDate,
            title = "Select Date",
            onSelectedDate = { date ->
                selectedDate = date
            }
        )
        
        // Password control from KMPControls
        PasswordControl(
            value = password,
            label = "Password",
            onValueChange = { password = it }
        )
        
        // Map from KMPMaps
        MapComponent(
            modifier = Modifier.height(200.dp),
            coordinates = Coordinates(37.7749, -122.4194)
        )
    }
}

Main Features

True Multiplatform

Modern Components

Native Maps

Complete Utilities

Solid Architecture

Documentation Guides

Example Projects

Explore our complete examples:

Community and Support

Project Status