Senior
Pracovali ste s Kotlin Multiplatform?
sobes.tech AI
Odpoveď od AI
Áno, na tom som pracoval. Vytvoril som spoločnú logiku pre iOS a Android pomocou Kotlin Multiplatform Mobile (teraz súčasť Kotlin Multiplatform).
Použil som Ktor na sieťové požiadavky, SQLDelight na prácu s databázou a Koin na správu závislostí.
Vyvinul som nasledujúce vrstvy:
- Vrstva dát: Práca s lokálnymi dátami a sieťou.
- Vrstva domény: Obchodná logika.
UI vrstva zostala závislá od platformy.
Hlavné výhody, ktoré som zdôraznil:
- Opakovanie kódu: Významné zníženie duplikácie logiky.
- Jednotný jazyk: Kotlin pre obe platformy.
- Interoperabilita: Nativná interakcia s kódom platformy (Swift/Objective-C a Java/Kotlin).
Tiež som zdôraznil niektoré ťažkosti:
- Zrelosť ekosystému: Niektoré knižnice môžu byť menej zrelé v porovnaní s platformovo špecifickými stackmi.
- Ladenie: Ladenie kódu pre viac platforiem môže byť menej intuitívne.
- CI/CD: Nastavenie CI/CD pipeline-ov si vyžaduje pozornosť na špecifiká KMP.
Tu je príklad jednoduchej triedy z spoločného modulu:
// commonMain
expect class Platform() {
val name: String
}
// androidMain
actual class Platform actual constructor() {
actual val name: String = "Android ${android.os.Build.VERSION.SDK_INT}"
}
// iosMain
actual class Platform actual constructor() {
actual val name: String =
UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
}
// commonMain
class Greeting {
private val platform: Platform = Platform()
fun greet(): String {
return "Hello, ${platform.name}!"
}
}
Táto skúsenosť s KMP, hoci nebola hlavným zameraním, ukázala potenciál na zrýchlenie vývoja a zjednotenie logiky v multiplatformových projektoch.