Spre deosebire de alte soluții cross-platform care desenează un ecran virtual sau folosesc un motor greoi de randare (precum Flutter), Kotlin Multiplatform (KMP) adoptă o filosofie curată: partajarea exclusivă a codului care contează (logica de domeniu, modelele de date, algoritmii de calcul, cache-ul local și apelurile de rețea), păstrând accesul 100% nativ la platforma de bază.
Pentru a accesa API-uri specifice sistemului de operare (cum ar fi modelul de dispozitiv, fișierele de securitate Keychain pe iOS sau SharedPreferences pe Android), KMP folosește mecanismul expect / actual.
// 1. În modulul comun (src/commonMain/kotlin/Platform.kt):
// Declarăm contractul așteptat de la toate platformele:
expect class InfoDispozitiv() {
val numePlatforma: String
val versiuneOS: String
}
// 2. În modulul specific Android (src/androidMain/kotlin/Platform.android.kt):
// Furnizăm implementarea concretă folosind API-ul Android SDK:
actual class InfoDispozitiv actual constructor() {
actual val numePlatforma: String = "Android"
actual val versiuneOS: String = android.os.Build.VERSION.RELEASE
}
// 3. În modulul specific iOS (src/iosMain/kotlin/Platform.ios.kt):
// Avem acces direct la framework-urile native Apple UIKit / UIDevice via Kotlin/Native:
import platform.UIKit.UIDevice
actual class InfoDispozitiv actual constructor() {
actual val numePlatforma: String = UIDevice.currentDevice.systemName()
actual val versiuneOS: String = UIDevice.currentDevice.systemVersion()
}
Structura Standard a unui Proiect Enterprise KMP
commonMain: Conține 85-95% din baza de cod (Modele de date, Ktor Client pentru HTTP, SQLDelight pentru SQLite, Corutine, reguli de afaceri).androidMain: Integrare cu servicii de sistem Android, injectare de context de aplicație.iosMain: Export către framework-ul nativ Xcode prin legături generate automat către Swift / Objective-C.wasmJsMain: Compilare binară în WebAssembly pentru rulare la viteză nativă în browsere moderne.
Întrebări & Exemple de Cod:
Arhitectura Kotlin Multiplatform (KMP): Mecanismul expect / actual și Partajarea CoduluiAi o nelămurire despre utilizarea comenzii
Arhitectura Kotlin Multiplatform (KMP): Mecanismul expect / actual și Partajarea Coduluisau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.