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

Monzo 是銀行與應用程式服務 數位金融服務業他們的使命是賺取收益 造福大眾Monzo 的設計系統開始偏離 Material Design 他們都希望以簡單的方式來撰寫及維護自訂元件 因此選擇了 Jetpack Compose

具體措施

使用 Compose 時,質感設計元件會以圖層形式在 具備各設計系統通用的基礎 APIMonzo 運用基礎 API 自己的元件庫 (參考 Material Design 元件做為參考資料)。他們 一開始先遷移畫面,接著在所有新畫面中使用 Compose。 現在,所有 Android 工程師都會在實際工作環境中使用 Compose:「我們 完全未遇到任何重大問題,因此我們有信心地開始著手 並用於部分新功能,最終支援所有新功能。」

結果

Monzo 團隊建立了元件,方便他們輕鬆建構新的元件 螢幕:「我們提供的元件可讓我們建構螢幕 同時學習 Compose 可帶來更順暢的使用體驗。以運算單元為基礎的 API 方便我們輕鬆建構大型元件 隱藏起來。」

運用 Compose,Monzo 團隊得以建構更優質的應用程式, 過去他們無法自行操作的有趣功能 衝刺:「其中一個例子是動畫,在 Compose 中加入動畫十分簡單, 沒有為元素加上動畫效果,例如:變更顏色/大小/高度 並輸入變更內容這類「可有可無」的動畫通常太難創造價值 因為 View 系統能簡化整個過程和作業。」

程式碼現在變得更短了,而且更容易閱讀、理解 維護:「宣告式程式碼比開發人員會更容易理解 操控可變動的 UI 階層。其他程式碼追蹤記錄也更輕鬆 通常相同語言且檔案都相同,而非 在 Kotlin 和 XML 之間來回切換。甚至沒辦法開始設計 XML 主題和風格!在 Compose 中,主題設定更容易理解。我們的主題 只包含我們定義的屬性,而這當中的值 因為 Kotlin 就內建了 Kotlin,所以能輕鬆搜尋及追蹤 。」

Compose 讓 Monzo 團隊輕鬆測試應用程式,確保應用程式 方便取用:「有了它後,我們編寫了較不脆弱的測試,穩定執行。 並讓我們相信我們擁有應用程式的實際運作能力 使用者。透過語意系統進行測試也可確保畫面 表示至少合理可以正常存取。」

開始使用

進一步瞭解 Compose