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

Monzo 是一家银行和应用产品 数字金融服务他们的使命是赚钱 人人皆宜。Monzo 的设计系统开始偏离 Material Design, 他们希望能够轻松编写和维护自定义组件,这些组件 所以他们选择了 Jetpack Compose。

策略

使用 Compose 时,Material Design 组件以层的形式提供 不局限于设计的基础 APIMonzo 使用基础 API 构建了自己的组件库,并以 Material 组件为参考。他们一开始只迁移一个界面,现在在所有新界面中都使用 Compose。现在,所有 Android 工程师都在生产环境中使用 Compose:“我们没有遇到任何重大问题,因此我们有足够的信心开始将其用于部分精选新功能,最终将其用于所有新功能。”

结果

Monzo 团队创建了一些组件,让他们能够轻松构建新屏幕:“我们提供的开箱即用组件让构建屏幕变得更加容易,同时学习 Compose 的体验也更加顺畅。基于槽位的 API 是 这种模式可让我们非常轻松地构建更大的组件 从许多小构建块中取而代之。”

借助 Compose,Monzo 团队能够构建更优质的应用,添加之前在 Sprint 中无法实现的令人愉悦的功能:“举个例子,就是动画 - 在 Compose 中添加动画非常简单,因此没有理由不为颜色/大小/高度变化等内容添加动画。这些“锦上添花”的动画通常太难实现,不值得在 View 系统中投入精力和复杂性。”

其代码现在变得更短,也更便于阅读、理解和 “声明式代码比推断性代码更容易推断 操控可变的界面层次结构。此外,当所有代码都使用同一种语言编写并且通常位于同一文件中(而不是在 Kotlin 和 XML 语言之间来回切换)时,跟踪变得更容易。我甚至还没开始学习 XML 主题和样式!Compose 中的主题更容易理解。我们的主题 仅包含我们定义的属性,这些值在 而且由于是采用 Kotlin 语言,因此很容易在 安装。”

借助 Compose,Monzo 团队能够轻松测试其应用并确保其可访问性:“它帮助我们编写了更为稳健、可靠运行的测试,让我们非常有信心,我们的应用在用户手中能够正常运行。通过语义系统进行测试还可以确保我们的屏幕 至少默认可访问。”

开始使用

详细了解 Compose