KmpLibrary

Kotlin Multiplatform Compose Multiplatform Android iOS Gradle License: MIT

SweetMeSoft KMP Library

Table of Contents

Project Summary

SweetMeSoft KMP Library is a unified, multi-module Kotlin Multiplatform SDK designed to streamline cross-platform application development across Android, iOS, and Desktop platforms. The project provides basic UI components, forms inputs, native map visualizations, device-level location helpers, and standardized architectures for application screens and ViewModels. It abstracts platform-specific APIs and boilerplates into a common set of APIs.

Functionalities

Libraries and Dependencies

Module / Dependency Category Purpose
Compose Multiplatform UI Framework Native UI layout construction across target platforms
Kotlinx DateTime Utility Date and time calculations and conversions
Kotlinx Serialization Utility JSON serialization and deserialization
Voyager Navigation Navigation flow control, transitions, and state preservation
Material Kolor Theme Utility Color palette generation from primary key colors
Ktor Client Network Engine for standard HTTP transactions across Android and iOS
Moko Permissions System Service Unified system permission requests for location and device features
Play Services Location System Service Geolocation provider integration on Android devices

Core Implementation

The workspace compiles common Kotlin codebase into platform-specific targets. Android artifacts compile into Java Virtual Machine bytecode compatible with Dalvik/ART runtimes. iOS compilation utilizes the Kotlin/Native LLVM-based compiler to generate Apple Frameworks (xcframework binaries) consumed directly by Swift or Objective-C runtime environments. The application utilizes Compose Multiplatform to draw layouts directly onto native canvas targets, bypassing heavy native view hierarchies while maintaining natural platform responsiveness.

Versions

Folder Structure

.
├── kmpbase
│   └── src
│       └── commonMain
│           └── kotlin
│               └── com/sweetmesoft/kmpbase
│                   ├── base         - Screen model, viewModel, and navigation definitions
│                   ├── controls     - Custom lists, grids, dropdowns, and alert components
│                   ├── objects      - Data models and core platform structures
│                   ├── screens      - Pre-built splash and about screens
│                   ├── serializers  - Custom serialization formats
│                   ├── theme        - Color scheme and theme generation engines
│                   └── tools        - Platform utility wrappers and helper functions
├── kmpcontrols
│   └── src
│       └── commonMain
│           └── kotlin
│               └── com/sweetmesoft/kmpcontrols
│                   ├── controls     - Password and search text field controls
│                   ├── dialogs      - Date and time selection dialogs
│                   ├── pickers      - Text-input date and time picker wrappers
│                   └── tools        - Native vibration feedback tools
├── kmpmaps
│   └── src
│       └── commonMain
│           └── kotlin
│               └── com/sweetmesoft/kmpmaps
│                   └── controls     - Coordinates, geo-position, routes, and map components
└── kmptestapp
    └── src
        └── commonMain
            └── kotlin
                └── com/sweetmesoft/kmptestapp
                    ├── components   - Custom application widgets and viewcards
                    ├── screens      - Demonstration screens and ViewModels
                    └── tabs         - Navigation tab definitions

Design Patterns Implemented

Configurations

The build configuration uses standard Kotlin Multiplatform Gradle configurations. Settings files define the modules in scope. The version catalog defines standard third-party library versions, plugins, and group names. Common source sets handle standard multiplatform business logic and layout scripts, while platform-specific source sets (androidMain, iosMain) configure platform-dependent libraries.

Integrations