I did it AGAIN!
維持上次參賽的傳統,最後一篇我會分享一些心得以及回顧我們所介紹過的這些技術,希望這些對你理解 Kotlin 的藍圖有幫助!
首先,很開心的宣布作為我們系列文章主軸的 KMM 再幾天前已經正式進入 Beta 了,這邊先放一下官方的宣傳影片:
就如我們之前所介紹的,KMM 在 multi-platform 這塊做了很多嘗試,而隨著時間推進,各種嘗試已經開始收斂,比如之前提到的新 memory management in Kotlin Native 等,確定進入 Beta 之後我們就可以更安心的使用,坐等 Stable 的來臨囉!
還記得 Beta 的定義嗎?可以回頭參考看看之前文章:
https://ithelp.ithome.com.tw/articles/10293057
除了 KMM Bata 的這個好消息之外,Google 也同時宣布 Jetpack 的 Collections 跟 DataStore 的 preview 版本也加入了 Kotlin Multiplatform 的行列了,只要把你的 dependency version 更改為以下版本就可以了:
val commonMain by getting {
dependencies {
implementation("androidx.collection:collection:1.3.0-dev01")
// Lower-level APIs with support for custom serialization
implementation("androidx.datastore:datastore-core-okio:1.1.0-dev01")
// Higher-level APIs for storing values of basic types
implementation("androidx.datastore:datastore-preferences-core:1.1.0-dev01")
}
}
基本上使用的方法沒有改變,只是現在我們可以直接在 KMM 的 common 裡直接使用這二個 library 了,真是讓人很期待這個強強聯手的下一步呢!
公告在此,有興趣的讀者可以參考看看:
https://android-developers.googleblog.com/2022/10/announcing-experimental-preview-of-jetpack-multiplatform-libraries.html
如果是跟著我們一路從第一篇到這裡的讀者可能會蠻讚嘆 Kotlin 應用的廣度,這也是筆者把這一系列文章取為 Kotlin 全面啟動,而不是 Kotlin KMM 的主因。
在 Android 開發裡,不用多說,一定使用 Kotlin 是首選,而其他 client 的 shared library 部分,也都可以靠 KMM 、KMP 來把 Kotlin code 轉成其他平台支援的格式,不論是 web、iOS、Mac、Desktop 都可以。
而 Kotlin 作為一個 JVM 語言的一員,它先天就可以直接繼承 Java 使用情境在 Java 後端直接替換掉,同時它又官方開發了一套擴充性極高的 Ktor,讓我們在前後端都可以用相同的邏輯來開發。
同時,也別忘了 Kotlin 也可以直接寫 script 在 command line 下執行,而 Gradle 的檔案也都可以改用 Kotlin 改寫。
說了這麼多,是不是很期待 Kotlin 的未來呢?但目前在 TIOBE 網站上的前四名主流程式語言: Python、Java、C 跟 C++ 的 Rating 加起來就超過 55% 了,而 Kotlin 目前排 28 名、Rating 只有 0.43%,可以説 Kotlin 雖然有 Android 大力加持,但在整個程式語言圈來說還是非主流,能夠往前走多遠呢,只有時間才能證明了,就讓我們一起期待 Kotlin 的時代來臨吧!
Reference:
https://www.tiobe.com/tiobe-index/
參加這次的鐵人賽也有蠻多巧合的,因緣際會參加了一個 KMM 的研究計畫,逼著自己學習了蠻多 KMM 的知識並想藉著鐵人賽記錄下來,前陣子分享英文版的 KSP 教學時有讀者希望能轉成中文,以及自己本來就想把 Ktor 的使用轉成跟 Retrofit,因為平常生活也很忙碌,賽前準備了很多庫存以便不時之需,快用完的時候剛好來了國慶連假救了一命,而寫到 Compose 的時候當好也搭上 GDG 的 Compose 活動,很多事情事後回頭看都像命中註定似的,另外 KMM 的研究計畫還拿到了一份 Amazon 的 gift card,本來想要買藍寶堅尼的樂高當自己生日禮物,後來買了一隻 Garmin 的手錶給自己、加樂高的自由女神像給 Google,自由女神在完賽前幾天 Google 拼好了,這幾天看啊看的,越來越像個獎盃似的,仔細想想能完賽就已經很不錯了,得不得獎反而不是這麼重要了,整個過程我所學習到的,以及各位讀者的支持才是我最大的推力,不是嗎?感謝大家一路鼓勵~