le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Kotlin Multiplatform è uno strumento che ci permette di scrivere codice nello stesso linguaggio di programmazione (Kotlin), che può essere eseguito su diversi dispositivi contemporaneamente, come telefoni cellulari, computer e pagine web. In questo modo si risparmia tempo perché non è necessario riscrivere la stessa funzionalità per ciascun dispositivo.
Caratteristica 1: Condivisione del codice: il codice logico, ad esempio una funzione di calcolo, può essere scritto una volta e quindi utilizzato nelle app Android e iOS.
Caratteristica 2: codice specifico della piattaforma: è possibile scrivere codice specifico per ciascuna piattaforma per gestire funzionalità uniche della piattaforma, come l'utilizzo della fotocamera del dispositivo. Ad esempio, usa l'API Camera di Android per scattare foto in un'applicazione Android e usa UIImagePickerController di iOS in un'applicazione iOS per scattare foto.
Caratteristica 3: Interoperabilità: Kotlin Multiplatform può interoperare con il codice Java, Swift o Objective-C esistente, semplificando l'integrazione nei progetti esistenti.
Caratteristica 4: Periodi di compilazione diversi: il codice su androidMain viene compilato utilizzando kotlin/jvm in un codice comprensibile da Android e il codice su iosMain viene compilato utilizzando kotlin/native in un codice comprensibile da iOS.
fare un passo:
1. Definire la logica condivisa: definire innanzitutto la logica aziendale comune in un modulo condiviso (ovvero, commonMain). Questi codici non dipendono da alcuna piattaforma, quindi possono essere eseguiti su qualsiasi piattaforma. Questo modulo condiviso è anche equivalente alla base per cross -fine condivisione.
Logica condivisa (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()}!"
}
}
Il codice sopra è il codice condiviso in kmp cross-end. Questi codici possono essere eseguiti sia su Android che su iOS. Tuttavia, questo codice restituisce infine un formato stringa Platform.name che deve essere ottenuto da questa stringa, che richiede cross-. terminal, perché il modo per ottenere platform.name è diverso nella sintassi kotlin su Android e ios, quindi dobbiamo definire una scusa per dire ad androidMain e iosMain, e voi due fornirete la logica per ottenere platform.name di cui mi occuperò rispettivamente it, e poi inizieranno a implementare questa logica. Il codice è il seguente
interface Platform {
val name: String
}
expect fun getPlatform(): Platform
2. Implementazione specifica della piattaforma: in androidMain e iosMain, fornire un'implementazione specifica dell'interfaccia in commonMain e scrivere codice per alcuni requisiti specifici della piattaforma.
Implementazione della piattaforma Android (androidMain):
import android.os.Build
class AndroidPlatform : Platform {
override val name: String = "Android ${Build.VERSION.SDK_INT}"
}
actual fun getPlatform(): Platform = AndroidPlatform()
Implementazione della piattaforma iOS (iosMain):
import platform.UIKit.UIDevice
class IOSPlatform: Platform {
override val name: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}
actual fun getPlatform(): Platform = IOSPlatform()
I due hanno detto obbedientemente: "Okay, fratello, lo implementeremo per te." Il lato Android ha detto: "Fratello, l'ho implementato in questo modo", e il lato iOS ha detto: "Fratello, l'ho implementato in questo modo~ ~~"