Prerequisites
- Android Studio Hedgehog (2023.1.1) or later
- Kotlin 2.1.0 or later
- For iOS: Xcode 14.0 or later (macOS only)
- For Desktop: JDK 17 or later
- Minimum SDK 24 for Android
Platform Support
Lumo UI supports the following platforms:- Android (androidTarget)
- iOS (iosArm64, iosX64, iosSimulatorArm64)
- macOS (macosX64, macosArm64)
- Desktop (JVM)
- Web (JS and Wasm)
Project Setup
Create Multiplatform Project
Create a new Kotlin Multiplatform project or open an existing one. Your project structure should include:
Configure Version Catalog
Add multiplatform dependencies to
gradle/libs.versions.toml:gradle/libs.versions.toml
Configure UI Components Module
Create a shared UI components module with multiplatform support:
ui-components/build.gradle.kts
Create Shared UI Code
Create your shared composables in the common source set:
- commonMain/App.kt
- androidMain
- desktopMain
- iosMain
commonMain/kotlin/App.kt
Platform-Specific Configuration
- Android
- iOS
- Desktop
Configure the Android module:
android/build.gradle.kts
Source Set Structure
Platform-Specific Components
Some components have platform-specific implementations:Troubleshooting
iOS Framework not found
iOS Framework not found
Make sure you’ve generated the iOS framework:Check Xcode’s Build Phases includes a script to build the framework.
JVM target mismatch
JVM target mismatch
Ensure consistent JVM targets across modules:
Desktop app won't launch
Desktop app won't launch
Verify your main class is correctly specified:
Wasm build errors
Wasm build errors
Make sure you’re using experimental Wasm DSL:
Next Steps
Theming
Learn how to customize your multiplatform theme
Navigation
Set up multiplatform navigation
Components
Explore all available components
Android Setup
Android-only setup guide