Monzo 使用 Compose 建構更完善、品質更高的應用程式

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