Kotlin Academy · Oppitunti

KMM-projektin rakenne

Jaettu ja alustakohtainen koodi

Oppitunti 1/413 vaihetta

KMM-projektin rakenne on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kotlin Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.

Mikä on KMM?

Kotlin Multiplatform Mobile (KMM) mahdollistaa koodin jakamisen iOS:n ja Androidin välillä, samalla kun käyttöliittymät pysyvät natiiveina. Kirjoitatte liiketoimintalogiikan kerran Kotlinilla.

Jaettu moduuli

KMM-projektin keskiössä on jaettu moduuli. Se käännetään Androidille JVM-kirjastoksi ja iOS:lle natiiviksi frameworkiksi.

  • Android käyttää sitä tavallisena riippuvuutena
  • iOS tuo sen käyttöön Objective-C/Swift-frameworkina

Lähdejoukot

Jaettu moduuli jaetaan lähdejoukkoihin:

  • commonMain — jaettu, alustariippumaton koodi
  • androidMain — Android-kohtainen koodi
  • iosMain — iOS-kohtainen koodi

commonMain

commonMain voi käyttää vain Kotlinin standardikirjastoa ja multiplatform-kirjastoja. Se ei saa viitata suoraan Androidin tai iOS:n ohjelmointirajapintoihin.

// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
    fun greet(): String = "Hello, KMM!"
}

Kohteiden konfiguroiminen

Jaetussa tiedostossa build.gradle.kts ilmoitetaan multiplatform-pluginin avulla, mitkä alustat käännetään.

kotlin {
    androidTarget()
    iosX64()
    iosArm64()
    iosSimulatorArm64()
}

iOS-framework

iOS-kohteet kootaan yhdeksi frameworkiksi, jonka Xcode tuo käyttöön.

kotlin {
    listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
        it.binaries.framework {
            baseName = "Shared"
        }
    }
}

Yhteiset riippuvuudet

Multiplatform-kirjastot, kuten coroutines, serialization ja Ktor, sijoitetaan commonMain-lähdejoukkoon, jotta kaikki kohteet voivat käyttää niitä.

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
        }
    }
}

Android-sovellusmoduuli

Android-sovellusmoduuli riippuu shared-moduulista kuten mikä tahansa Gradle-moduuli ja rakentaa Android-käyttöliittymän Jetpack Composella tai View-näkymillä.

// androidApp/build.gradle.kts
dependencies {
    implementation(project(":shared"))
}

iOS-sovellus

iOS-sovellus on tavallinen Xcode-projekti. Se linkittää generoidun Shared-frameworkin ja kutsuu Kotlin-luokkia Swiftistä.

// Swift
// import Shared
// let text = Greeting().greet()

Mitä kannattaa jakaa

Tyypillistä jaettavaa koodia ovat verkkoyhteydet, tietomallit, repositoryt, käyttötapaukset ja validointi. Käyttöliittymä, navigointi ja alustan sensorit kannattaa pitää natiiveina.

Itsenäisesti toimiva tervehdys

Jaettu logiikka on tavallista Kotlinia. Tässä sama luokka suoritetaan itsenäisesti sen osoittamiseksi, että kyse on tavallisesta koodista.

class Greeting {
    fun greet(): String = "Hello, KMM!"
}

fun main() {
    println(Greeting().greet())
}

Pikatarkistus

Mihin sijoitatte koodin, joka ei saa sisältää viittauksia Androidin tai iOS:n ohjelmointirajapintoihin?

Kertaus

Opitte KMM:n rakenteen:

  • shared-moduuli, jossa ovat commonMain, androidMain ja iosMain
  • Kohteet ilmoitetaan multiplatform-pluginissa; iOS saa frameworkin
  • Android riippuu moduulista komennolla project(":shared"); iOS tuo frameworkin käyttöön

Seuraavaksi: expect ja actual.

Aloita maksutta

Opi Kotlin tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
51
Oppitunnit
203

Usein kysytyt kysymykset

Onko oppitunti ”KMM-projektin rakenne” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “KMM-projektin rakenne”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”KMM-projektin rakenne”?

Jaettu ja alustakohtainen koodi Harjoittelet Kotlin Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kotlin Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”KMM-projektin rakenne”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Kotlin Academy-oppitunnilla?

Kyllä. Jokainen Kotlin Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. KMM-projektin rakenne
  2. expect ja actual
  3. Liiketoimintalogiikan jakaminen
  4. Alustojen API:t
← Takaisin: Kotlin Academy