0Pricing
Kotlin Academy · Lekcja

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 platformy
  • androidMain — kod specyficzny dla systemu Android
  • iosMain — 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ł shared z elementami commonMain, androidMain i iosMain
  • 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

  1. Struktura projektu KMM
  2. expect i actual
  3. Współdzielenie logiki biznesowej
  4. API platformy
← Powrót do Kotlin Academy