作者 | Tim Anderson
譯者 | 劉雅夢
策劃 | Tina
JetBrains 提供了 Kotlin Multiplatform 的首個穩定版本,支持跨 iOS、Android、桌面、Web 和伺服器進行代碼共享——儘管用於共享用戶介面(UI)代碼的部分,Compose Multiplatform,僅適用於 Android 和桌面。
Kotlin 是由 JetBrains 開發的一種 JVM(Java 虛擬機)語言,並被谷歌(Google)用作 Android 開發的首選語言。既然 Java 已經是為跨平台代碼而設計的了,那麼 Kotlin Multiplatform 又增加了什麼呢?答案是 Kotlin 不僅僅是一種 JVM 語言。Kotlin/Native 使用 MinGW(適用於 Windows 的 GCC 工具鏈)和 Android NDK 編譯成適用於 macOS、iOS、Linux、Windows 的獨立可執行文件。Kotlin/JS 將 Kotlin 轉換為 Java。Kotlin Wasm 仍處於實驗階段,可編譯成 WebAssembly。
Kotlin Multiplatform 是一種跨所有這些平台共享非 GUI 代碼的技術。它解決了代碼共享的兩個常見問題,即對於所有目標平台的一個子集,僅需部分共享某些代碼的需求,以及需要訪問特定於平台的 API。
Kotlin Multiplatform 中的 Expect 和 Actual,解決了調用本機平台 API 的需求
本機 API 問題是通過預期聲明和實際聲明的機制來解決的。expect 關鍵字將聲明標記為將與用actual關鍵字標記的代碼匹配,actual關鍵字可能是特定於平台的。JetBrains 建議僅對平台 API 使用 expect/actual,其他情況使用普通接口。
2022 年的一項調查顯示,Kotlin Multiplatform 應用程式的代碼共享率高達 63%
Kotlin Multiplatform 適用於非 GUI 代碼,但有一個相關項目 Compose Multiplatform,它可用於創建共享的用戶介面(UI)。Compose Multiplatform 基於谷歌的 Jetpack Compose,用於構建 Android 用戶介面。Compose Multiplatform 在桌面平台、macOS、Linux 和 Windows 上也是穩定版本,但在 iOS 上是 Alpha 版本,在 Web 上是實驗性的。根據 JetBrains 的說法,Kotlin Multiplatform 已經被包括 Netflix 和 VMWare 在內的公司所使用。
如果 Compose Multiplatform 還沒有準備好,那麼開發者如何支持 iOS 呢?這可以通過使用 SwiftUI 來實現,SwiftUI 是蘋果(Apple)的官方 UI 設計語言,它是基於聲明式代碼的。有一些代碼示例正是採用了這種方式實現的。
JetBrains 還表示,他們的目標是在 2024 年發布面向 iOS 的 Compose Multiplatform 測試版本,Kotlin/Wasm 也在積極開發中。
去年,谷歌通過 引入 其他一些 Jetpack 庫的「實驗預覽」,表達了對 Kotlin Multiplatform 的一些支持,這些庫不是用於生產的,而是用於「在針對 Android 和 iOS 應用程式的多平台項目中使用這些 Jetpack 庫的反饋」。請注意,谷歌還提供了使用 Dart 語言和 Flutter UI 進行跨平台開發的 Flutter。
使用 Kotlin 而不是 Java 的另一個原因是它的語言特性,包括 lambda 表達式、擴展函數、類型推理、null 安全等等。Kotlin 沒有檢查異常,因為這些不會提高生產力或代碼質量。
Kotlin Multiplatform 和 Compose Multiplatform 均可免費使用。Kotlin 的代碼位於 Github 上,許可證是 Apache2.0。
原文連結:
https://devclass.com/2023/11/01/jetbrains-offers-first-stable-release-of-kotlin-multiplatform/
「谷歌有谷歌的規矩」
丟掉 LangChain、像 Docker一樣編排大模型應用程式:這支十餘人的年輕創業團隊如何在2個月做出一個LLMOps平台?
僅憑 7 頁 PPT 拿下 1 億美元融資、半年後估值超 10 億!「歐洲 OpenAI」殺瘋了
易鯨捷否認貼牌 Oracle;鴻蒙進教材:「純血」版不再兼容安卓應用;大叔們遭AI女友「斷崖式分手」 | Q 資訊