Was ist Kotlin Multiplatform und warum wird es benötigt?
Kotlin Multiplatform (KMP) ist keine Bibliothek im klassischen Sinne, sondern eine Technologie (SDK und Toolset) von JetBrains, die es ermöglicht, gemeinsamen Code in Kotlin zu schreiben und für mehrere Plattformen zu kompilieren: JVM (Android, Server), JavaScript (Webbrowser, Node.js), Native (iOS, macOS, Windows, Linux, watchOS, tvOS).
Warum wird das benötigt? In der modernen Entwicklung müssen oft Anwendungen für verschiedene Plattformen erstellt werden. Traditionell bedeutete dies, Code in verschiedenen Sprachen zu schreiben (Swift für iOS, Java/Kotlin für Android, JavaScript für das Web). Kotlin Multiplatform löst dieses Problem, indem es die Geschäftslogik (Netzwerkanfragen, Datenbankzugriffe, Datenvalidierung, Serialisierung) in ein gemeinsames Modul auslagert, das auf allen Plattformen verwendet wird. Plattformspezifischer Code (UI, Kamera, Sensoren) bleibt nativ, aber sein Umfang wird erheblich reduziert.
Die wichtigsten Vorteile:
- Reduzierte Entwicklungszeit: Einmal Logik schreiben – überall nutzen.
- Einheitliche Codebasis: Weniger Fehler, einfachere Wartung und Refaktorisierung.
- Native Leistung: Im Gegensatz zu React Native oder Flutter kompiliert KMP zu nativem Code und läuft nicht über eine Abstraktionsschicht.
- Flexibilität: Sie können klein anfangen – nur eine Bibliothek auslagern (z. B. für Netzwerkanfragen) und den gemeinsamen Code schrittweise erweitern.
- Nutzung vorhandenen Codes: Native Bibliotheken können über den
expect/actual-Mechanismus eingebunden werden.
Kotlin Multiplatform ist ideal geeignet für: Mobile Apps (Android + iOS), Serveranwendungen (Ktor + KMP), Webanwendungen (Kotlin/JS), Desktop-Anwendungen (Compose Multiplatform) und Bibliotheken, die überall laufen sollen.
Installation und Einrichtung
Kotlin Multiplatform wird nicht über pip oder npm installiert. Es ist ein Build-Tool, das über das Build-System Gradle konfiguriert wird. Nachfolgend finden Sie den Standardprozess zur Erstellung eines Projekts mit KMP.
1. Installation von IntelliJ IDEA oder Android Studio
Wir empfehlen die Verwendung von IntelliJ IDEA Ultimate (die Community Edition ist ebenfalls geeignet, jedoch mit Einschränkungen) oder Android Studio mit dem Kotlin Multiplatform Plugin.
2. Projekt erstellen
Der einfachste Weg ist die Nutzung des Kotlin Multiplatform Wizards (Online-Tool von JetBrains): https://kmp.jetbrains.com/. Wählen Sie die gewünschten Plattformen (Android, iOS, Desktop, Web) aus und laden Sie die fertige Vorlage herunter.
3. Projektstruktur (Gradle)
Die Hauptkonfigurationsdatei ist build.gradle.kts (root und modular). Die wichtigsten Plugins:
// Root build.gradle.kts
plugins {
kotlin("multiplatform") version "1.9.22" apply false
kotlin("plugin.serialization") version "1.9.22" apply false
id("com.android.application") version "8.2.0" apply false
id("org.jetbrains.compose") version "1.5.11" apply false
}
// shared module (gemeinsamer Code)
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("com.android.library")
}
kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach {
it.binaries.framework {
baseName = "shared"
isStatic = true
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")
implementation("io.ktor:ktor-client-core:2.3.7") Auch in der Bibliothek
Arbeiten mit XML in Go: encoding/xml, Bibliotheken und Beispiele
TBB (Intel Threading Building Blocks) für C++: Komplettguide mit Beispielen
Arbeit mit CSV in TypeScript: Bibliotheken, Parsing und Datengenerierung
MPAndroidChart für Kotlin: Komplettguide mit Beispielen