如何向您的團隊介紹多平台行動開發
在組織中實作新技術和工具總是伴隨著挑戰。您該如何協助您的團隊採用 多平台行動應用程式開發方法 以最佳化並簡化您的工作流程?以下是一些建議和最佳實務,旨在協助您有效地向團隊介紹 Kotlin Multiplatform (KMP)。這是一項由 JetBrains 開發的開放原始碼技術,允許開發者在跨平台共用程式碼的同時,保留原生程式設計的優勢。
從同理心出發
軟體開發是一項團隊運動,每一項關鍵決策都需要所有團隊成員的認可。整合任何跨平台技術都會顯著影響您行動應用程式的開發過程。因此,在您開始將 Kotlin Multiplatform 整合到專案之前,您需要向團隊介紹這項技術,並引導他們逐漸了解其採用的價值。
了解專案中的開發人員是成功整合的第一步。您的主管負責在最短時間內交付最高品質的功能。對他們來說,任何新技術都是一種風險。您的同事也有不同的觀點。他們擁有使用「原生」技術堆疊建置應用程式的經驗。他們知道如何編寫 UI 和商務邏輯、處理 相依性、在 IDE 中進行 測試 和 偵錯 程式碼,並且已經熟悉該語言。切換到不同的生態系統總是不便的,因為這通常意味著要離開舒適圈。
考慮到這一切,在提倡轉向 Kotlin Multiplatform 時,請準備好面對許多偏見並回答大量問題。在此過程中,切勿忽視團隊的需求。以下一些建議可能對您準備提案有所幫助。
解釋 Kotlin Multiplatform 的運作方式
在這個階段,您需要展示使用 Kotlin Multiplatform 能為您的專案帶來價值,並消除團隊對跨平台行動應用程式可能持有的任何偏見或疑慮。
KMP 自 Alpha 版本發佈以來已廣泛用於生產環境。因此,JetBrains 能夠收集廣泛的回饋,並在 穩定版本 中提供更出色的開發體驗。
- 能夠使用所有 iOS 和 Android 功能 – 每當任務無法在共用程式碼中完成,或者您想使用特定的原生功能時,您可以使用 expect/actual 模式來無縫編寫平台特定程式碼。
- 流暢的效能 – 使用 Kotlin 編寫的共用程式碼會被編譯成適用於不同目標的不同輸出格式:Android 為 Java 位元組碼,iOS 為原生 二進制。因此,在平台上執行此程式碼時不會有額外的執行階段開銷,且其效能與 原生應用程式 相當。
- 與舊有程式碼的相容性 – 無論您的專案規模有多大,現有的程式碼都不會阻礙您整合 Kotlin Multiplatform。您可以隨時開始編寫跨平台程式碼,並將其作為一般的 相依性 連接到您的 iOS 和 Android 應用程式,或者您也可以使用已編寫的程式碼並將其修改為與 iOS 相容。
能夠解釋技術「如何」運作至關重要,因為沒有人喜歡聽起來像是依靠魔法的討論。如果內容不明確,人們可能會往壞處想,所以要小心,不要誤以為某些事情太顯而易見而不需要解釋。相反地,在進入下一階段之前,請嘗試解釋所有基本概念。這份關於 多平台程式設計 的文件可以協助您系統化您的知識,為此經驗做好準備。
使用案例研究來展示多平台開發的價值
了解多平台技術如何運作是必要的,但這還不夠。您的團隊需要看到使用它的收益,而且您呈現這些收益的方式應該與您的產品相關。
在這個階段,您需要解釋在您的產品中使用 Kotlin Multiplatform 的主要收益。一種方法是分享其他已經從跨平台行動開發中受益的公司故事。這些團隊的成功經驗,特別是那些具有類似產品目標的團隊,可能會成為最終決策的關鍵因素。
引用已在生產環境中使用 Kotlin Multiplatform 的不同公司的案例研究,可以顯著協助您提出具說服力的論點:
- McDonald's – 透過在全域行動應用程式中運用 Kotlin Multiplatform,McDonald's 建立了一個可以跨平台共用的程式碼庫,消除了程式碼庫冗餘的需求。
- Netflix – 在 Kotlin Multiplatform 的幫助下,Netflix 最佳化了產品可靠性和交付速度,這對於滿足客戶需求至關重要。
- Forbes – 透過在 iOS 和 Android 之間共用超過 80% 的邏輯,Forbes 現在可以同時在兩個平台上推出新功能,同時保留平台特定 自訂 的靈活性。
- 9GAG – 在嘗試了 Flutter 和 React Native 之後,9GAG 逐漸採用了 Kotlin Multiplatform,這現在協助他們更快交付功能,同時為使用者提供一致的體驗。
透過建立範例專案提供證明
理論固然好,但付諸實踐最終才是最重要的。為了讓您的案例更具說服力並展示多平台行動應用程式開發的潛力,其中一個選項是投入一些時間使用 Kotlin Multiplatform 建立一些東西,然後將結果交給您的團隊討論。您的原型可以是某種測試專案,您可以從頭開始編寫,並展示應用程式中需要的功能。 使用 Ktor 和 SQLDelight 建立多平台應用程式 – 教學 將引導您完成此過程。
您可以透過實驗目前的專案來產生更相關的範例。 您可以採用一個現有的、以 Kotlin 實作的功能並將其轉為跨平台, 或者您甚至可以在現有專案中建立一個新的多平台 模組, 從待處理清單底部挑選一個非優先功能,並在共用 模組 中實作它。 讓您的 Android 應用程式在 iOS 上執行 – 教學 提供了基於範例專案的逐步指南。
準備好回答團隊關於多平台開發的問題
無論您的提案有多詳細,您的團隊都會有很多問題。請仔細聆聽並耐心地回答所有問題。您可以預期大多數問題會來自團隊的 iOS 成員,因為他們是不習慣在日常開發工作流程中看到 Kotlin 的開發人員。以下是一些最常見問題的清單,可以對您有所幫助:
問:我聽說基於跨平台技術的應用程式可能會被 App Store 拒絕。承擔這個風險值得嗎?
答:Apple Store 對於發佈應用程式有嚴格的指南。其中一項限制是應用程式不得下載、安裝或執行會引入或更改應用程式任何功能或功能性的程式碼(App Store 審核指南 2.5.2)。這與某些跨平台技術相關,但與 Kotlin Multiplatform 無關。共用的 Kotlin 程式碼會透過 Kotlin/Native 編譯為原生 二進制,將一般的 iOS 架構 封裝到您的應用程式中,並且不提供動態程式碼執行的能力。
問:多平台專案是使用 Gradle 組建的,而 Gradle 的學習曲線極其陡峭。這是否意味著我現在需要花費大量時間嘗試配置我的專案?
答:實際上不需要。圍繞組建 Kotlin 行動應用程式的工作流程有多種組織方式。首先,可以僅由 Android 開發人員負責組建,在這種情況下,iOS 團隊只需編寫程式碼,甚至只需使用產生的構件。您也可以在處理需要使用 Gradle 的任務時組織一些工作坊或進行結對程式設計,這將提高團隊的 Gradle 技能。您可以探索組織多平台專案團隊合作的不同方式,並選擇最適合您團隊的一種。
當團隊中只有 Android 部分處理共用程式碼時,iOS 開發人員甚至不需要學習 Kotlin。但當您準備好讓團隊進入下一階段(每個人都為共用程式碼做出貢獻)時,進行轉換不會花費太多時間。Swift 和 Kotlin 在語法和功能上的相似性大大減少了學習如何閱讀和編寫共用 Kotlin 程式碼所需的工作量。您可以親自嘗試 Kotlin Koans,這是一系列讓您熟悉 Kotlin 語法和一些慣用法的練習。
2023 年底,JetBrains 推出了 Amper,這是一款新的實驗性專案配置工具,專注於易用性、引導和 IDE 支援。要深入了解 Amper 的功能,請查看其 教學。
問:Kotlin Multiplatform 已經生產就緒了嗎?
答:在 2023 年 11 月,我們宣布 Kotlin Multiplatform 現在已進入 穩定版,這意味著它現在已經完全準備好供您在生產環境中使用。
問:沒有足夠的多平台庫來實作我應用程式的商務邏輯,而且找原生替代方案要容易得多。為什麼我應該選擇 Kotlin Multiplatform?
答:Kotlin Multiplatform 生態系統正在蓬勃發展,並受到全球許多 Kotlin 開發者的維護。只需看看 KMP 庫 的數量多年來增長得有多快。

這也是成為 Kotlin Multiplatform 開放原始碼社群中 iOS 開發者的好時機,因為對 iOS 經驗的需求很高,而且有很多機會因對 iOS 特定的貢獻而獲得認可。
您的團隊越深入研究多平台行動開發,他們的問題就會越有趣且越複雜。如果您沒有答案,請不要擔心 – Kotlin Multiplatform 在 Kotlin Slack 中有一個龐大且提供支援的社群,並設有專門的 #multiplatform 頻道,許多已經在使用它的開發者可以協助您。如果您能與我們 分享 您的團隊提出的最熱門問題,我們將不勝感激。這些資訊將協助我們了解哪些主題需要在文件中涵蓋。
在適應期為您的團隊提供支援
在您決定使用 Kotlin Multiplatform 之後,隨著您的團隊嘗試該技術,會有一段適應期。而您的使命尚未結束!透過為您的隊友提供持續的支援,您將縮短團隊深入了解該技術並取得首批成果所需的時間。
以下是一些關於您在此階段如何支援團隊的提示:
- 將您在上一階段被問到的問題收集到「Kotlin Multiplatform:常見問題」Wiki 頁面上,並與您的團隊分享。
- 建立一個 #kotlin-multiplatform-support Slack 頻道,並成為那裡最活躍的使用者。
- 組織一次輕鬆的團隊建設活動,準備爆米花和披薩,一起觀看關於 Kotlin Multiplatform 的教育性或啟發性影片。以下是一些不錯的影片選擇:
現實情況是,您可能無法在一天甚至一週內改變人們的心意。但對同事需求的耐心和關注無疑會帶來成果。
JetBrains 團隊期待聽到 您關於使用 Kotlin Multiplatform 的故事。
我們要感謝 Touchlab 團隊 協助撰寫本文。
