2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Kotlin Multiplatform on työkalu, jonka avulla voimme kirjoittaa koodia samalla ohjelmointikielellä (Kotlin), joka voi toimia eri laitteilla samanaikaisesti, kuten matkapuhelimissa, tietokoneissa ja verkkosivuilla. Tämä säästää aikaa, koska sinun ei tarvitse kirjoittaa uudelleen samoja toimintoja jokaiselle laitteelle.
Ominaisuus 1: Code Sharing – Logiikkakoodi, kuten laskentatoiminto, voidaan kirjoittaa kerran ja käyttää sitten sekä Android- että iOS-sovelluksissa.
Ominaisuus 2: Alustakohtainen koodi – Kullekin alustalle voidaan kirjoittaa erityinen koodi, joka käsittelee alustalle ainutlaatuisia ominaisuuksia, kuten laitteen kameran käyttöä. Käytä esimerkiksi Androidin Camera API:ta kuvien ottamiseen Android-sovelluksessa ja iOS:n UIImagePickerControlleria iOS-sovelluksessa kuvien ottamiseen.
Ominaisuus 3: Yhteentoimivuus – Kotlin Multiplatform voi toimia yhdessä olemassa olevan Java-, Swift- tai Objective-C-koodin kanssa, mikä tekee siitä helpon integroinnin olemassa oleviin projekteihin.
Ominaisuus 4: Eri käännösjaksot – androidMainin koodi käännetään kotlin/jvm:n avulla koodiksi, jota Android voi ymmärtää, ja iosMainin koodi käännetään kotlin/natiivia käyttäen koodiksi, jota ios voi ymmärtää.
vaihe:
1. Määrittele jaettu logiikka: Määritä ensin yhteinen liiketoimintalogiikka jaetussa moduulissa (eli commonMainissa). Nämä koodit eivät ole riippuvaisia mistään alustasta, joten ne voivat toimia millä tahansa alustalla. Tämä jaettu moduuli vastaa myös ristiin -jakamisen loppu.
Jaettu logiikka (commonMain):
import kotlin.random.Random
class Greeting {
private val platform: Platform = getPlatform()
fun greet(): String {
val firstWord = if (Random.nextBoolean()) "Hi!" else "Hello!"
return "$firstWord Guess what this is! > ${platform.name.reversed()}!"
}
}
Yllä oleva koodi on jaettu KMP-koodissa. Nämä koodit voivat toimia sekä Androidissa että iOS:ssä. Tämä koodi kuitenkin palauttaa merkkijonomuodon tästä merkkijonosta. terminaaliin, koska kotlin-syntaksi platform.nimen hankkimiseen on erilainen Androidissa ja iosissa, joten meidän on määritettävä tekosyy kertoaksemme androidMainille ja iosMainille, ja te kaksi annatte logiikan platform.name:n hankkimiseen, minä käsittelen sen. ja sitten he alkavat toteuttaa tätä logiikkaa Koodi on seuraava
interface Platform {
val name: String
}
expect fun getPlatform(): Platform
2. Alustakohtainen toteutus: Anna androidMainissa ja iosMainissa käyttöliittymän erityinen toteutus commonMainissa ja kirjoita koodi tiettyjä alustakohtaisia vaatimuksia varten.
Android-alustan toteutus (androidMain):
import android.os.Build
class AndroidPlatform : Platform {
override val name: String = "Android ${Build.VERSION.SDK_INT}"
}
actual fun getPlatform(): Platform = AndroidPlatform()
iOS-alustan toteutus (iosMain):
import platform.UIKit.UIDevice
class IOSPlatform: Platform {
override val name: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}
actual fun getPlatform(): Platform = IOSPlatform()
He sanoivat tottelevaisesti: "Okei, veli, me toteutamme sen puolestasi." se~~~"