Monzo 是一家銀行和應用程式,提供數位金融服務。他們的使命是讓每個人都能賺錢。Monzo 的設計系統開始偏離 Material Design,因此他們希望能輕鬆編寫及維護不斷演進的自訂元件,因此選擇了 Jetpack Compose。
具體措施
透過 Compose,Material Design 元件會以不受設計系統影響的基礎 API 層提供。Monzo 使用基礎 API 建構自己的元件程式庫,並以 Material 元件做為參考。他們一開始是一次遷移一個畫面,現在則在所有新畫面中使用 Compose。目前,所有 Android 工程師都已在實際作業中使用 Compose:「我們沒有遇到任何重大問題,因此有信心開始將其用於部分特定的新功能,並最終用於所有新功能。」
結果
Monzo 團隊建立了元件,讓他們可以輕鬆建構新的畫面:「我們提供的元件可讓您在學習 Compose 的同時,輕鬆建構畫面,提供更流暢的體驗。以插槽為基礎的 API 是一種絕佳的模式,可讓我們輕鬆從大量小型建構元素中建構更大型的元件。」
有了 Compose,Monzo 團隊就能建構出更高品質的應用程式,並加入先前在衝刺期間無法處理的實用功能:「舉例來說,動畫很容易在 Compose 中加入,因此沒有理由不加入動畫,例如顏色/大小/升降變更。這些「可有可無」的動畫通常太難實作,不值得在 View 系統中花費心力和時間。」
程式碼現在變得更短,也更容易閱讀、瞭解及維護:「與操控可變 UI 階層的程式碼相比,宣告式程式碼更容易推理。當程式碼全部使用相同語言編寫且通常在相同的檔案中時,就會更容易直接追蹤程式碼,而不是在 Kotlin 和 XML 之間來回切換。更別說 XML 主題和樣式了!主題設定在 Compose 中更容易理解。我們的主題只包含我們定義的屬性,因此各裝置的值都一致,而且因為是使用 Kotlin 編寫,所以在 IDE 中搜尋和追蹤起來非常容易。」
Compose 讓 Monzo 團隊輕鬆測試應用程式,並確保應用程式可供存取:「這項工具有助於我們編寫不易出錯、可靠執行的測試,並讓我們更加有信心,確保應用程式在使用者手中確實可正常運作。透過語意系統進行測試,也能確保螢幕至少在預設情況下可合理存取。」
開始使用
進一步瞭解 Compose。