能一次寫兩個平台總是很美好的,但市面的fragmework其實都有其缺點,最近比較貼近的應該是 flutter,只是dart語言又是一個新的開始,就我們這些Android開發者來說,如果能用Kotlin就可以寫到跨語言該有多好?
Kotlin Multiplatform Mobile
於是Kotlin推出了一個Multiplatfrom Mobile的SDK,可以透過kotlin去寫library還有使用既有的Android Studio進行安裝外掛即可,在上面就可以寫同樣的商業邏輯,讓兩個平台各自去呼叫
首先必須安裝android studio rc4.1以上 ,並且確定將kotlin先更新1.4 版本,然後才能到android studio plug-in安裝KMM的外掛(kotlin multiplatforom)
在 new project的時候就可以看到

KMM Application的選項了

之後在windows上可能會有一個小問題,就是 gradle會有錯誤
sourceSets[“main”].manifest.srcFile(“src\androidMain\AndroidManifest.xml”)
記得改成
sourceSets[“main”].manifest.srcFile(“src\\androidMain\\AndroidManifest.xml”)
就可以了,之後找一台android手機就可以直接Build了,看一下目錄結構

會有一個android App跟iosApp的資料夾,應該就是做UI demo使用的
fun greet(): String {return Greeting().greeting()}class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)val tv: TextView = findViewById(R.id.text_view)tv.text = greet()}}
可以看到Android 的MainActivity是這樣,有一個陌生的物件,Greeting(),想必這就是共用library的位置
在 Shared/CommonMain中可以看到共用商業邏輯就寫這在邊

如果你想build ios的因為機器關係,就必須找一台Mac來進行建置,簡單一點就是有mac就可以直接建議雙平台的程式語言了,初步就測試到這邊,目前這個SDK還是alpha階段,所以可能還是不適合拿來做產品使用
另外官方有提到有一些APP已經採用他們的架構了,我看到我熟悉的Quizlet於是看了一下,他們也描述了找過多種跨平台邏輯的語言或者工具,但要不要難以維護,或是難以Debug,最後它們採用了KMM
詳細的內容可以看這邊
Done.