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.
| 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 |
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.
.
├── 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
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.