Kotlin Multiplatform Mobile

Kobe Ko
Mar 22, 2021

--

https://kotlinlang.org/lp/mobile/

KMM(Kotlin Multiplatform Mobile) 是 JetBrains 推出的一個跨平台技術

可以讓 Kotlin 寫出來的程式,同時能在 iOS 和 Android 上運作

KMM 和其他線上跨平台技術,像是 ReactNative、Flutter等

最大的不同處在於,KMM 著重在和平台無關的部分

https://imgur.com/gallery/AVtNo09

聽起來怪怪的吧!

跨平台技術,卻著重在和平台無關的部分

其實 KMM 的設計概念是這樣

和平台強相關的部分,通常是 UI 或是平台特有的 APIs (像是藍芽)

這部分 KMM 並沒有打算處理,而是建議開發者依然使用原生的方式去開發

因為是和平台強相關,所以用原生的方式去開發,也相對省力

但和平台沒有相關的部分,像是商業邏輯的部分

就可以使用 KMM 來開發,然後同時在 iOS 和 Android 上使用

一個好的 codebase,在開發的時候,也通常會遵守 clean architecture的架構

舉例來說,很多的 design pattern,像是 MVP、MVVM等

都會將商業邏輯和UI切開,讓維護和開發可以更加容易

而商業邏輯本質上來說,本來就和平台無關

所以何不讓iOS和Android可以共享這部份的程式呢?

Use a library not a framework

KMM 比較像是一個工具,而不是一個框架

不需要把整個專案徹底依賴在某個框架上

也不用重新學一個新的語言和框架

KMM 讓開發者自由選擇,想要共享的部分

對於開發者來說,是比較自由的,不會被特定框架給限制住

Netflix 也寫了一篇文章,分享他們對於 KMM 的看法

https://netflixtechblog.com/netflix-android-and-ios-studio-apps-kotlin-multiplatform-d6d4d8d25d23

在各種跨平台的技術中,個人比較喜歡 KMM 的方向

有機會再來分享,用KMM開發一些 side projects 的心得

37 program — 天天變強系列

--

--

Kobe Ko
Kobe Ko

Written by Kobe Ko

Founder & CEO of topreco. Android & iOS Developer.

No responses yet