JetBrains正式推出跨平臺開發工具Kotlin Multiplatform(KMP),讓開發人員可以在不同平臺間共享程式碼,但同時又能保留原生程式開發的優勢。目前Kotlin Multiplatform已經進入穩定階段,用戶可以將其用於開發環境中。

KMP的核心由多個部分組成,包括編譯器、語言功能、函式庫API、IDE、建置工具等,其被設計為一個高靈活性和適應性的工具,能夠模糊平臺和原生開發之間的界線。開發人員可以重複使用大量的程式碼,並在需要的時候編寫原生程式碼,並將共享的Kotlin程式碼整合到各式專案中。

KMP讓開發人員在不同平臺維護單一程式碼庫,特別像是應用程式的邏輯部分,因此可大幅減少開發者,針對不同平臺編寫和維護相同程式邏輯的時間。雖然KMP提供跨平臺的能力,但是KMP也同時讓開發者保有原生程式開發的靈活性,確保效能表現以及使用特定平臺SDK的自由度。針對特定平臺才可使用的功能像是藍牙或GPS,KMP提供特殊語法,讓開發者在這些平臺獨立實現專屬的功能。

KMP具有高度靈活性,能夠支援不同程度的程式碼重用和原生程式開發案例,像是開發者可以僅共享部分以Kotlin編寫的重要邏輯程式碼,或是在新專案使用KMP開發,以Kotlin實作全部資料處理和業務邏輯,但在各平臺應用程式維持原生使用者介面,又或是搭配Compose Multiplatform這個JetBrains的宣告式UI框架,跨不同平臺完全共享使用者介面和邏輯程式碼。

Kotlin Gradle擴充套件加入預設階層範本功能,來簡化開發者專案配置和維護工作,該功能可以自動配置Kotlin Source Sets,以適應一些常見的應用,減少典型建置腳本需要編寫的樣板程式碼。而在KMP中,JetBrains在Kotlin Gradle擴充套件中新增約50個診斷程式,以檢測常見的建置問題,並提供修復問題的提示,同時改進在Xcode中的Gradle錯誤輸出,使專案原生部分的建置問題更容易被發現。

目前開發人員可以在Android、iOS、桌面JVM、伺服器端JVM和網頁上共用程式碼。Google的Android團隊也開始提供多平臺Jetpack函式庫實驗性版本,而Collections、DataStore、Annotations與Paging函式庫,則已經與KMP相容。iOS開發體驗的部分,則有Touchlab開發的SKIE,能夠生成Swift程式碼,並且產生與Swift程式碼介接的API層以橋接Kotlin類型,實現無縫的協程(Coroutines)互通性。

JetBrains還在持續發展KMP,並且預計2024年會推出Compose Multiplatform for iOS的Beta版,官方也正在開發Kotlin/Wasm,使得KMP能夠更方便地進行網頁開發,預計明年會推出Compose Multiplatform for Web Alpha版本。

熱門新聞

Advertisement