Monzo 使用 Compose 构建更强大、更优质的应用

Monzo 是一家提供数字金融服务的银行和应用。他们的使命是让每个人都能赚钱。Monzo 的设计系统开始偏离 Material Design,因此他们想要一种轻松编写和维护不断变化的自定义组件的方法,因此他们选择了 Jetpack Compose。

策略

使用 Compose 时,Material Design 组件作为一个层提供在与设计系统无关的基础 API 之上。Monzo 使用基础 API 参考 Material 组件构建了自己的组件库。他们首先一次迁移一个界面,现在在所有新界面中都使用 Compose。现在,所有 Android 工程师都在生产环境中使用 Compose:“我们没有遇到任何重大问题,因此我们有信心开始将它用于一些精选的新功能,并最终用于所有新功能。”

成果

Monzo 团队打造了能让他们轻松构建新界面的组件:“我们提供开箱即用的组件,使构建界面能够在学习 Compose 的同时获享更顺畅的体验基于槽位的 API 是一种奇妙的模式,让我们能够非常轻松地使用大量小构建块构建更大的组件。”

借助 Compose,Monzo 团队得以构建更优质的应用,添加了之前在冲刺阶段无法实现的一些有趣功能:“动画就是这样一个例子。添加动画非常简单,几乎没有理由为颜色/尺寸/高度变化等元素添加动画效果这些“漂亮”的动画通常太难,不值得在 View 系统中付出努力和复杂性。”

现在,他们的代码更短,并且更易于阅读、理解和维护:“与操控可变界面层次结构的代码相比,声明式代码更易于推理此外,如果全部代码都是用相同的语言编写的,并且通常都是相同的文件,那么跟踪代码会更容易,而不是在 Kotlin 和 XML 之间来回切换。甚至不必开始学习 XML 主题和样式!Compose 中的主题更易于理解。我们的主题仅包含我们定义的属性,其值在不同设备上保持一致,而且由于采用 Kotlin 语言,可以在 IDE 中非常轻松地进行搜索和遵循。”

Compose 让 Monzo 团队能够轻松测试他们的应用,确保其应用可供访问:“它帮助我们编写了不那么脆弱的测试、运行可靠,并且让我们充满信心,我们的应用可以在用户手中正常运行。通过语义系统进行测试还可确保我们的屏幕至少在默认情况下可供正常访问。”

开始使用

详细了解 Compose