Technology sharing

Kotlin MultiPlatform(KMP)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Kotlin MultiPlatform

Insert imaginem descriptionis hic

1. Quid est KMP?

Multiplatform Kotlin instrumentum est quod sinit nos scribere codicem in eadem programmandi lingua (Kotlin), quae diversis machinis simul currere potest, sicut telephoniis gestabilibus et interretialibus. Hoc faciens tempus salvat quia non necesse est eandem functionem pro singulis artificiis rescribere.

2. Quae sunt notae?

Pluma 1: Codex Socius – Logica, ut munus computationis, semel scribi potest, et tunc in utroque apps Android et iOS.
Pluma 2: codice Platform-specifico – Specific code pro unoquoque tribunali scribi potest ut features singulares in suggestu pertractet, ut instrumentum photographicum utens. Exempli causa, utere Camera Android API ut picturas in applicatione Android, et usum iOS UIImagePickerController in applicatione iOS ad imagines capiendas.
Pluma 3: Interoperabilitas - Kotlin Multiplatformia cum exsistenti Java, Celeri vel Objectivo-C codice interoperari potest, ut facile in exsistentia incepta integrare possit.
Pluma 4: variae periodi compilatio - signum in androidMain compilavit utens kotlin/jvm in codice quem Android intelligere potest, et signum in iosMain exaratum est utens kotlin/nativum in codice qui ios intellegere potest.

3. Quomodo transire-terminatio munera

gradum;
1. Definire logicam communem: Primum logicam communi negotio definire in communi modulo (id est communi). -end communicatio.
Logica communicata (communia);

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()}!"
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Codex superior in signo crucis-Kmp communicatus est. Hi codices in utroque Android et iOS currere possunt. Sed hic codex tandem filum format. terminatio, quia modus obtinendi suggestum est.nomen in kotlin syntaxi differt in Android et ios, ideo definire debemus excusationem ad indicandum androidMain et iosMain, et tu duo das logicam obtinendi suggestum. nomen respective cum ea, ac deinde logicam hanc efficiendi incipiunt

interface Platform {
    val name: String
}

expect fun getPlatform(): Platform

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2. Exsecutio rostris-specialis: In androidMain et iosMain, exsecutionem instrumenti in communi praebent, et codicem scribe ad nonnulla requisita suggestuum specialium.
Android suggestum exsecutio (androidMain):

import android.os.Build

class AndroidPlatform : Platform {
    override val name: String = "Android ${Build.VERSION.SDK_INT}"
}

actual fun getPlatform(): Platform = AndroidPlatform()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

iOS suggestus exsecutio (iosMain);

import platform.UIKit.UIDevice

class IOSPlatform: Platform {
    override val name: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}

actual fun getPlatform(): Platform = IOSPlatform()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Duo ex illis obedienter dixerunt, "Bene, frater, pro te efficiemus." ~~"