2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Kotlin Multiplatform ist ein Tool, mit dem wir Code in derselben Programmiersprache (Kotlin) schreiben können, der gleichzeitig auf verschiedenen Geräten wie Mobiltelefonen, Computern und Webseiten ausgeführt werden kann. Dies spart Zeit, da Sie nicht für jedes Gerät die gleiche Funktionalität neu schreiben müssen.
Funktion 1: Code-Sharing – Logikcode, beispielsweise eine Berechnungsfunktion, kann einmal geschrieben und dann sowohl in Android- als auch in iOS-Apps verwendet werden.
Funktion 2: Plattformspezifischer Code – Für jede Plattform kann spezifischer Code geschrieben werden, um plattformspezifische Funktionen zu handhaben, z. B. die Verwendung der Kamera des Geräts. Verwenden Sie beispielsweise die Kamera-API von Android, um Bilder in einer Android-Anwendung aufzunehmen, und verwenden Sie den UIImagePickerController von iOS in einer iOS-Anwendung, um Bilder aufzunehmen.
Funktion 3: Interoperabilität – Kotlin Multiplatform kann mit vorhandenem Java-, Swift- oder Objective-C-Code zusammenarbeiten und erleichtert so die Integration in bestehende Projekte.
Funktion 4: Verschiedene Kompilierungsperioden – der Code auf androidMain wird mit kotlin/jvm in Code kompiliert, den Android verstehen kann, und der Code auf iosMain wird mit kotlin/native in Code kompiliert, den ios verstehen kann.
Schritt:
1. Definieren Sie die gemeinsame Logik: Definieren Sie zunächst die gemeinsame Geschäftslogik in einem gemeinsam genutzten Modul (d. h. commonMain). Diese Codes sind nicht von einer Plattform abhängig, sodass sie auf jeder Plattform ausgeführt werden können. Dieses gemeinsam genutzte Modul entspricht auch der Basis für Cross -Teilen beenden.
Gemeinsame Logik (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()}!"
}
}
Der obige Code ist der gemeinsame Code in kmp-Cross-End. Dieser Code kann jedoch letztendlich aus dieser Zeichenfolge zurückgegeben werden. Dies erfordert Cross-End. Terminal, da die Kotlin-Syntax zum Abrufen von platform.name auf Android und iOS unterschiedlich ist. Daher müssen wir eine Ausrede definieren, um androidMain und iosMain mitzuteilen, und Sie beide geben die Logik zum Abrufen von platform.name an. und dann beginnen sie mit der Implementierung dieser Logik. Der Code lautet wie folgt
interface Platform {
val name: String
}
expect fun getPlatform(): Platform
2. Plattformspezifische Implementierung: Stellen Sie in androidMain und iosMain eine spezifische Implementierung der Schnittstelle in commonMain bereit und schreiben Sie Code für einige plattformspezifische Anforderungen.
Implementierung der Android-Plattform (androidMain):
import android.os.Build
class AndroidPlatform : Platform {
override val name: String = "Android ${Build.VERSION.SDK_INT}"
}
actual fun getPlatform(): Platform = AndroidPlatform()
Implementierung der iOS-Plattform (iosMain):
import platform.UIKit.UIDevice
class IOSPlatform: Platform {
override val name: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}
actual fun getPlatform(): Platform = IOSPlatform()
Die beiden sagten gehorsam: „Okay, Bruder, wir werden es für dich implementieren.“ Die Android-Seite sagte: „Bruder, so habe ich es implementiert“, und die iOS-Seite sagte: „Bruder, so habe ich es implementiert.“ es~~~"