KMM-projektin rakenne
Jaettu ja alustakohtainen koodi
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 koodiandroidMain— Android-kohtainen koodiiosMain— 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 ovatcommonMain,androidMainjaiosMain- Kohteet ilmoitetaan multiplatform-pluginissa; iOS saa frameworkin
- Android riippuu moduulista komennolla
project(":shared"); iOS tuo frameworkin käyttöön
Seuraavaksi: expect ja actual.
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
- KMM-projektin rakenne
- expect ja actual
- Liiketoimintalogiikan jakaminen
- Alustojen API:t