Mit Kotlin Multiplatform (KMP) können Sie Kotlin-Code auf verschiedenen Plattformen verwenden. Bevor Sie mit dem Erstellen von Apps mit KMP beginnen, müssen Sie Ihre Umgebung wie in diesem Dokument beschrieben einrichten. Weitere Informationen finden Sie auch in der offiziellen Dokumentation von JetBrains.
Erforderliche Tools installieren oder aktualisieren
- Installieren Sie die neueste stabile Version von Android Studio oder aktualisieren Sie sie.
- Aktualisieren Sie das Kotlin-Plug-in, das im Lieferumfang von Android Studio enthalten ist, auf die neueste Version, um Kompatibilitätsprobleme zu vermeiden.
- Optional: Für die iOS-Entwicklung installieren Sie Xcode, um die Benutzeroberfläche zu erstellen und nach Bedarf Swift- oder Objective-C-Code hinzuzufügen.
Kotlin Multiplatform-Projekt erstellen
Mit dem Kotlin Multiplatform Wizard von JetBrains können Sie ein neues KMP-Projekt erstellen. Wählen Sie die Option UI nicht freigeben aus, damit die Benutzeroberfläche nativ bleibt.
Projektstruktur
KMP-Projekte folgen einer Projektstruktur, die der von Android-Projekten ähnelt.
Ein KMP-Projekt enthält sowohl plattformspezifische als auch freigegebene Module. Fügen Sie dem entsprechenden Modul Ihren plattformspezifischen Code hinzu. Fügen Sie beispielsweise die Benutzeroberfläche Ihrer Android-App im Modul androidApp und die Benutzeroberfläche Ihrer iOS-App in iosApp hinzu. Code, den Sie für alle Plattformen verwenden möchten, gehört in das Modul shared.
Das freigegebene Modul verwendet wie der Rest des Projekts Gradle als Build-System. Mit Source-Sets können Sie allgemeine und plattformspezifische Abhängigkeiten deklarieren. Wenn Ihre App beispielsweise Ktor für die Netzwerkkommunikation verwendet, müssen Sie eine OkHttp-Abhängigkeit für Android und eine Darwin-Abhängigkeit für iOS hinzufügen. Beachten Sie, dass einige Bibliotheken nur allgemeine Abhängigkeiten erfordern und keine plattformspezifischen Abhängigkeiten.
sourceSets {
commonMain.dependencies {
//put your multiplatform dependencies here
//...
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
//...
}
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
}
}
Wenn Sie dem freigegebenen Modul Ihrer App eine neue Bibliothek hinzufügen, prüfen Sie die erforderlichen Abhängigkeiten für jede Plattform.