大家好
這次的主題是用Compose Multiplatform 實戰:用Kotlin從零開始開發跨平台App
這次我會聚焦在 開發 跨平台Android
跟 IOS
的App上
在最後幾天也會談談目前研究下來的概況以及心得
我們先簡單了解一下 Compose Multiplatform 跟 Kotlin Multiplatform
Multiplatform
這個字本身就是 Multi
+ platform
從字面上的意思就是多平台
的意思
而 Compose Multiplatform
目前根據JetBrain的官網的介紹
支援開發者用Kotlin 中的Compose聲明式UI
來開發Application
目前支援的平台有iOS
、Android
、Desktop
、Web
四大項
另外,有些人也會稱作KMM (Kotlin mobile multiplatform)
或是CMP (Compose Multiplatform)
、KMP (Kotlin Multiplatform)
下面我將會用CMP
來表示Compose Multiplatform
以便減少版面的重複性
還望大家習慣一下!
CMP
跟KMP
的區別是什麼?其實兩者都旨在簡化跨平台專案的開發
減少為不同平台編寫和維護相同程式碼的時間
可以透過Gradle的配置
搭配共用Source Code的開發來減少開發時程
像是透過commonMain
來開發跨平台的程式碼
如Compose UI就是在這一層內開發
那其中的差別如下
:
KMP
是必需用原生平台的Code去刻畫目標App的UI layout
像是Android 使用Xml
來實作layout
( or Compose實作layout 不過在KMP的時候只能用在Android下 不能用在common的邏輯)
IOS使用Obj-C來實作UI
而CMP
則 延伸KMP的概念
同樣可以 撰寫 共用程式碼
並且開始支援Compose來一次完成多平台的畫面
像是下圖是我用純Compose就能一次刻畫多平台的畫面
當然這是用Material Design 3
刻出來的畫面
有可能會有人在意跟IOS的規範不一樣
但我實際發現過去在做專案時
大部分的UI Designs都會要求以IOS的畫面為主
除了一些各自平台的元件除外
仔細刻還是可以刻到跟IOS極度相似的畫面
所以這部分就看每個人的Use case
去決定會不會在意了XD
最後
在這三十天內,我會先以下面的為主題來做分享
明天開始
會開始寫筆記讓大家更了解Compose Multiplatform
另外CMP也在不斷更新
像是從Google發佈的文章看來
是有可能會在CMP中
陸續增加更多的支援
是滿令人期待的
(圖片來源:Google Blog)
因為CMP這個東西比較新
有可能會遇到各式各樣的情況
網路上資料也沒那麼充足
所以大家有遇到問題也能討論、互相學習成長
同時我也整理了相關內容在我的部落格
想要看看的可以點擊連結查看