KMM-Projektstruktur
Gemeinsamer und plattformspezifischer Code
KMM-Projektstruktur ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist KMM?
Kotlin Multiplatform Mobile (KMM) ermöglicht es Ihnen, Code zwischen iOS und Android zu teilen und gleichzeitig native Benutzeroberflächen beizubehalten. Sie schreiben die Geschäftslogik einmal in Kotlin.
Das shared-Modul
Im Mittelpunkt eines KMM-Projekts steht ein shared-Modul. Es wird für Android zu einer JVM-Bibliothek und für iOS zu einem nativen Framework kompiliert.
- Android verwendet es als gewöhnliche Abhängigkeit
- iOS bindet es als Objective-C-/Swift-Framework ein
Source Sets
Das shared-Modul ist in Source Sets aufgeteilt:
commonMain— gemeinsam genutzter, plattformunabhängiger CodeandroidMain— Android-spezifischer CodeiosMain— iOS-spezifischer Code
commonMain
commonMain darf nur die Kotlin-Standardbibliothek und Multiplatform-Bibliotheken verwenden. Es darf nicht direkt auf Android- oder iOS-APIs verweisen.
// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
fun greet(): String = "Hello, KMM!"
}Targets konfigurieren
Die gemeinsame Datei build.gradle.kts legt mit dem Multiplatform-Plugin fest, für welche Plattformen gebaut wird.
kotlin {
androidTarget()
iosX64()
iosArm64()
iosSimulatorArm64()
}Das iOS-Framework
Die iOS-Targets werden zu einem einzelnen Framework gebündelt, das Xcode importiert.
kotlin {
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework {
baseName = "Shared"
}
}
}Gemeinsame Abhängigkeiten
Multiplatform-Bibliotheken (Coroutines, Serialisierung, Ktor) gehören in commonMain, damit alle Targets sie gemeinsam verwenden.
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
}
}
}Android-App-Modul
Das Android-App-Modul hängt wie jedes Gradle-Modul von shared ab und erstellt die Android-Benutzeroberfläche mit Jetpack Compose oder Views.
// androidApp/build.gradle.kts
dependencies {
implementation(project(":shared"))
}iOS-App
Die iOS-App ist ein gewöhnliches Xcode-Projekt. Sie bindet das generierte Shared-Framework ein und ruft Kotlin-Klassen aus Swift auf.
// Swift
// import Shared
// let text = Greeting().greet()Was sollte geteilt werden?
Typischer gemeinsam genutzter Code umfasst Netzwerkzugriffe, Datenmodelle, Repositories, Use-Cases und Validierung. Benutzeroberfläche, Navigation und plattformspezifische Sensoren sollten nativ bleiben.
Eine eigenständige Begrüßung
Die gemeinsam genutzte Logik ist einfaches Kotlin. Hier wird dieselbe Klasse eigenständig ausgeführt, um zu zeigen, dass es sich um gewöhnlichen Code handelt.
class Greeting {
fun greet(): String = "Hello, KMM!"
}
fun main() {
println(Greeting().greet())
}Kurztest
Wo platzieren Sie Code, der frei von jeglichen Verweisen auf Android- oder iOS-APIs sein muss?
Zusammenfassung
Sie haben die Struktur von KMM kennengelernt:
- Ein
shared-Modul mitcommonMain,androidMainundiosMain - Targets werden im Multiplatform-Plugin deklariert; für iOS wird ein Framework erstellt
- Android hängt über
project(":shared")ab; iOS importiert das Framework
Als Nächstes: expect und actual.
Häufig gestellte Fragen
Ist die Lektion „KMM-Projektstruktur“ kostenlos?
Ja — der vollständige Text von „KMM-Projektstruktur“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „KMM-Projektstruktur“?
Gemeinsamer und plattformspezifischer Code Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Kotlin Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „KMM-Projektstruktur“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- KMM-Projektstruktur
- expect und actual
- Geschäftslogik gemeinsam nutzen
- Plattform-APIs