Kotlin推出能寫跨雙平台Library的KMM SDK (Kotlin Multiplatform Mobile)

JLin
4 min readSep 8, 2020

--

能一次寫兩個平台總是很美好的,但市面的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.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

JLin
JLin

Written by JLin

台中 / JAVA / Android /Kotlin / Kotlin Native 對於Kotlin衍生的JVM等技術 Compose for web / desktop / Ktor Server,生成式AI (Gemini/OpenAI)各式應用, 都有小興趣

Responses (1)

Write a response