Monzo 是一家提供数字金融服务的银行和应用。他们的使命是让每个人都能赚钱Monzo 的设计系统开始偏离 Material Design,因此希望找到一种轻松的方式来编写和维护不断完善的自定义组件,因此他们选择了 Jetpack Compose。
策略
使用 Compose 时,Material Design 组件作为层提供在与设计系统无关的基础 API 之上。Monzo 使用基础 API 参考 Material 组件构建了自己的组件库。他们首先一次迁移一个界面,现在在所有新界面中使用 Compose。现在,所有 Android 工程师都在生产环境中使用 Compose:“我们没有遇到任何重大问题,因此我们有信心开始将其用于一些精选的新功能,并最终用于所有新功能。”
成果
Monzo 团队打造了能让他们轻松构建新屏幕的组件:“我们提供开箱即用型组件,使构建界面变得更加顺畅。基于槽位的 API 是一种非常棒的模式,它让我们能够非常轻松地利用大量小构建块构建更大的组件。”
借助 Compose,Monzo 团队得以构建更优质的应用,并添加了之前无法在短时间内实现的令人愉悦的功能:“动画就是一个例子,可以很轻松地在 Compose 中添加动画,所以没有理由为颜色/尺寸/高度变化等元素添加动画效果。这些“锦上添花”的动画往往太难了,不值得在 View 系统中付出精力和复杂性。”
现在,他们的代码更短,更易于阅读、理解和维护:“与操纵可变界面层次结构的代码相比,声明式代码更容易推理。此外,如果全部代码都是用同一种语言编写的,而且通常都使用同一个文件编写,而不在 Kotlin 和 XML 之间来回切换,这种方法会更轻松地跟踪代码。甚至不必开始学习 XML 主题和样式!Compose 中的主题设置更容易理解。我们的主题仅包含我们定义的属性,其值在不同设备上保持一致,并且由于采用 Kotlin 语言,因此在 IDE 中可以非常轻松地进行搜索和遵循。”
Compose 让 Monzo 团队能够轻松测试他们的应用,并确保应用易于访问:“它帮助我们编写了不易出错且运行可靠的测试,让我们充满信心,确保我们的应用能在用户手中得到真正的运行。通过语义系统进行测试还可以确保我们的屏幕至少在合理的范围内在默认情况下可供访问。”
开始使用
详细了解 Compose。