Struktura projektu KMM
Kod współdzielony i platformowy
Struktura projektu KMM to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Czym jest KMM?
Kotlin Multiplatform Mobile (KMM) pozwala współdzielić kod między systemami iOS i Android, zachowując natywne interfejsy użytkownika. Logikę biznesową pisze się raz w Kotlinie.
Moduł shared
Projekt KMM koncentruje się wokół modułu shared. Jest on kompilowany do biblioteki JVM dla systemu Android oraz do natywnego frameworka dla systemu iOS.
- Android używa go jak zwykłej zależności
- iOS importuje go jako framework Objective-C/Swift
Zbiory źródeł
Moduł shared jest podzielony na zbiory źródeł:
commonMain— współdzielony kod niezależny od platformyandroidMain— kod specyficzny dla systemu AndroidiosMain— kod specyficzny dla systemu iOS
commonMain
commonMain może korzystać wyłącznie ze standardowej biblioteki Kotlina i bibliotek wieloplatformowych. Nie może bezpośrednio odwoływać się do interfejsów API systemu Android ani iOS.
// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
fun greet(): String = "Hello, KMM!"
}Konfigurowanie targetów
Współdzielony plik build.gradle.kts deklaruje, które platformy mają być kompilowane za pomocą wtyczki wieloplatformowej.
kotlin {
androidTarget()
iosX64()
iosArm64()
iosSimulatorArm64()
}Framework iOS
Targety iOS są łączone w jeden framework, który importuje Xcode.
kotlin {
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework {
baseName = "Shared"
}
}
}Wspólne zależności
Biblioteki wieloplatformowe (coroutines, serialization, Ktor) umieszcza się w commonMain, aby wszystkie targety mogły z nich korzystać.
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
}
}
}Moduł aplikacji Android
Moduł aplikacji Android zależy od shared jak każdy moduł Gradle, a interfejs użytkownika systemu Android tworzy za pomocą Jetpack Compose lub Views.
// androidApp/build.gradle.kts
dependencies {
implementation(project(":shared"))
}Aplikacja iOS
Aplikacja iOS jest standardowym projektem Xcode. Łączy wygenerowany framework Shared i wywołuje klasy Kotlina ze Swifta.
// Swift
// import Shared
// let text = Greeting().greet()Co współdzielić
Typowy współdzielony kod obejmuje komunikację sieciową, modele danych, repozytoria, przypadki użycia i walidację. Interfejs użytkownika, nawigację oraz czujniki platformy należy pozostawić w implementacji natywnej.
Samodzielne powitanie
Współdzielona logika jest napisana w zwykłym Kotlinie. Poniżej ta sama klasa działa samodzielnie, aby pokazać, że jest zwykłym kodem.
class Greeting {
fun greet(): String = "Hello, KMM!"
}
fun main() {
println(Greeting().greet())
}Szybki test
Gdzie należy umieścić kod, który musi być pozbawiony wszelkich odwołań do interfejsów API systemu Android i iOS?
Podsumowanie
Poznano strukturę KMM:
- Moduł
sharedz elementamicommonMain,androidMainiiosMain - Targety deklarowane we wtyczce wieloplatformowej; dla systemu iOS tworzony jest framework
- Android korzysta z zależności przez
project(":shared"); iOS importuje framework
Następnie: expect i actual.
Często zadawane pytania
Czy lekcja „Struktura projektu KMM” jest bezpłatna?
Tak — pełny tekst „Struktura projektu KMM” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Struktura projektu KMM”?
Kod współdzielony i platformowy Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?
Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Struktura projektu KMM”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?
Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Struktura projektu KMM
- expect i actual
- Współdzielenie logiki biznesowej
- API platformy