Kotlin Multiplatform Mobile已邁入Alpha

kotliner發表於2020-09-08

Kotlin Multiplatform Mobile(KMM)是一個能讓你在iOS和Android應用程式中共用業務邏輯程式碼的SDK。KMM今天釋出Alpha版,你可以馬上使用其共享移動應用程式中的業務邏輯。它包含適用於Android Studio的新KMM外掛,可以在同一IDE中編寫,執行,測試和除錯共享程式碼。加入像VMWare,Autodesk和Yandex這樣的優秀團隊,他們使用Kotlin在其移動應用程式中共享程式碼。在移動平臺之間重用程式碼從未如此簡單!

file

Kotlin Multiplatform Mobile是什麼?

Kotlin Multiplatform Mobile (KMM)是JetBrains提供的用於跨平臺移動開發的SDK。它用到了Kotlin的多平臺特性 ,以及各種工具和功能,旨在讓構建移動跨平臺應用程式的端到端體驗儘可能迷人和高效。

Android和iOS版本的應用程式通常有很多共同點,但也存在很大的區別,尤其是在UI方面,從滾動行為的細微差別到完全不同的導航邏輯。同時應用程式的業務邏輯(包括資料管理,分析和身份驗證等功能)通常是相同的。這就是為什麼跨平臺應用程式的某些部分能共享,同時其他部分需要完全分開的原因。

使用KMM,靈活性及Native程式設計的優勢都能兼得。將某個單獨的程式碼庫用於iOS和Android應用程式的業務邏輯,並在需要時,編寫平臺特定程式碼去實現本機UI或API。

file

KMM能無縫接入到你的移動專案。用Kotlin編寫的共享程式碼通過Kotlin/JVM編譯為JVM位元組碼,並通過Kotlin/Native編譯為本機二進位制檔案,因此你可以像使用其他標準移動庫一樣使用KMM的業務邏輯模組。

在移動平臺之間共享Kotlin程式碼已經為許多公司節省了大量時間和人力。以下是一些令人激動的案例:

  • Quizlet將他們的業務邏輯從JavaScript共享方案遷移到KMM,極大提高了Android和iOS應用程式的效能。
  • Fastwork為其應用程式的domain和資料層引入了KMM,以在移動平臺之間共享業務邏輯和API服務,從而極大地提高了團隊的生產力。 –Yandex.Disk通過嘗試整合一個小功能開始的,當實驗成功後,他們通過KMM實現了整個資料同步邏輯。

這些團隊和很多其他團隊取得的非凡成就是我們靈感的重要部分,我們希望他們的故事能鼓勵你開始使用KMM在移動平臺之間共享程式碼。

享受使用KMM建立移動應用程式

KMM對移動開發領域來說還很陌生,但我們相信它是真正的遊戲規則改變者。因此,我們在Kotlin內部分配了一個單獨的團隊來推動KMM前進,併為使用Kotlin建立跨平臺移動應用程式提供最佳的開發人員體驗。

作為邁出的第一步,今天我們很高興向你展示** 適用於Android Studio的KMM外掛的第一個預覽版和新的 KMM開發人員門戶**。

讓我們的KMM之旅啟程吧!

在熟悉的環境中工作

使用新的KMM外掛,你可以在Android Studio中編寫,執行,測試和除錯共享程式碼,而無需切換到其他IDE。通過Preferences | Plugins,在Marketplace搜尋Kotlin Multiplatform Mobile,點選Install按鈕進行安裝。

只需單擊幾下即可配置新的應用程式

通過** New Kotlin Multiplatform Mobile Project 嚮導,只需點選幾下,便可建立有共享程式碼庫的可執行的移動應用程式專案。要觀察專案在兩個平臺上如何工作,只需選擇所需的執行配置,然後點選Run** 按鈕。

file

生成的專案將包含如何連線到特定於平臺的API和基本測試範圍的示例。你可以使用該向導來探索KMM的基本功能,也可以將其用作新的KMM生產應用程式的腳手架工具。

跟隨教程安裝外掛並通過嚮導建立你的第一個多平臺應用程式。

輕鬆接入KMM到現有專案

你還可以直接在現有專案中開始KMM之旅:就像其他任何常規依賴項一樣,共享的Kotlin程式碼可以輕鬆地整合到現有的程式碼中。 新的Kotlin多平臺移動模組嚮導將幫助你向專案中新增新的KMM模組,因此可以使用已編寫的Kotlin程式碼,並對其進行重構使其與iOS相容。

參考將KMM整合到現有專案指南,瞭解如何設計多平臺專案的架構以及如何遷移。

一個IDE,兩個平臺

不再需要切換IDE到Xcode來檢查程式碼是否在兩個平臺上都能正常工作。通過新外掛,iOS真機和模擬器都已直接整合到Android Studio中。併為你提供以下功能:

  • 在模擬器或具有預定義執行配置的裝置上執行並除錯IOS應用程式
  • 只需單擊測試類或方法上的gutter圖示,即可在iOS模擬器上執行並除錯通用及IOS指定測試

對於應用程式和測試,你都可以在iOS上設定斷點並除錯程式碼。

img

無縫整合IOS生態

如上所述,KMM已和你的移動端專案無縫整合。對於Android,可以在專案的任何位置使用Kotlin。同時得益於Kotlin/Native與Objective-C/Swift的互操作性,KMM提供了與iOS開發過程的緊密整合。 與CocoaPods依賴項管理器整合,以及使用特定於平臺的API的能力與期望/實際模式。

享受在Kotlin/Native中混合編寫Swift與Kotlin程式碼

Kotlin/Native提供了與Objective-C/Swift的雙向互操作性。 Kotlin模組可以在Swift/Objective-C中完整使用。你可以使用Kotlin程式碼中的Objective-C框架和庫,也可以使用Swift庫(如果它們的API已通過@ objc匯出到Objective-C)。

更多資訊請查閱Kotlin/Native與Swift/Objective-C的互操作性.

輕鬆管理IOS依賴

Kotlin/Native整合了CocoaPods依賴管理器。你可以新增對CocoaPods儲存庫中或本地儲存的Pod庫的依賴,也可以將面向native目標的多平臺專案用作CocoaPods依賴(Kotlin Pod)。直接在Android Studio中管理Pod依賴項,並享受完全的編碼輔助,包括程式碼高亮和程式碼補全。

這是標準的KMM庫配置示例:

通過將庫的名稱和路徑新增到Podfile,將庫作為Kotlin Pod連線到你的iOS專案:

更多資訊請查閱CocoaPods整合.

瞭解如何在新的開發人員門戶上建立優質的多平臺移動應用

新的KMM開發人員門戶,旨在讓KMM從入門到生產的開發之旅更加舒適和高效。

使用KMM時,文件將是你最值得信任的同伴。各種各樣的專業內容,從入門到高階開發專題。包含常見案例的有用資源,例如網路組建和資料儲存層,乃至圍繞KMM的開發流程

想了解在專案中應用KMM的優勢?可以通過案例研討的其他團隊產品所使用KMM的一手經驗中學習。

社群的力量

我們感謝以下公司和獨立開發者,他們投入的時間、知識以及經驗對於該版本至關重要:Kevin Galligan, Alec Strong, Arkadii Ivanov, Ben Asher, John O’Reilly, Louis CAD, Kris Wong, Aleksey Mikhailov和許多其他優秀的工程師。感謝你在YouTrack上報告問題,參與產品調研及回訪,分享有關你使用KMM的經歷以及建立的讓人驚訝的多平臺庫!

我們還要感謝幫助新的開發者入口網站建立內容的團隊:TouchlabIceRockKodein Koders 。你們的工作將幫助成千上萬的開發者能更深入地瞭解Kotlin Multiplatform Mobile併發揮它的全部潛力。

大夥們,搖滾起來!

現在嘗試

伴隨所有這些非常酷的特性,我們很高興宣佈** KMM已進入Alpha**。這意味著Kotlin團隊將全力改進這項技術並促進其發展。這也表明該產品將快速迭代。我們將傾聽你的反饋,並儘快提供修復和改進。請通過tracker反饋你發現的任何問題,來幫助我們提高KMM的穩定性。

使用Alpha意味著你已經準備就緒,可以開始使用KMM在移動平臺之間共享業務邏輯程式碼。可以建立一個新專案,也可以輕鬆地將KMM模組整合到現有專案中。在這兩種情況下,都能以最低的成本完成工作,並且你始終可以回到純native開發魂晶。社群發展迅速,你可以參與社群來帶動整個生態的發展。

因此,現在是開始使用KMM的最好時機!

更多KMM的深入體驗,及交流你即將探索的特性,請加入Slack的多平臺愛好者社群(在這裡獲取邀請),並在Stack Overflow上訂閱“kotlin-multiplatform”標籤。

我們已竭盡全力,仍不能保證遷移萬無一失。我們將通過feature flags及提供新版本的遷移指南來儘量避免相容性問題。

分享反饋

該版本只是旅程的開始,但這個過程中我們需要幫助。希望能收到你的所有反饋。通過分享你使用Kotlin Multiplatform Mobile的經歷來鼓舞他人,並請分享你對改善KMM的任何想法。

Let’s Kotlin!

相關文章