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

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

策略

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

成果

Monzo 团队创建了各种组件,使他们能够轻松构建新屏幕:“我们提供开箱即用型组件,让构建屏幕变得更加顺畅。基于槽位的 API 是一种奇妙的模式,让我们能够非常轻松地使用大量小型构建块构建更大的组件。”

借助 Compose,Monzo 团队得以构建更优质的应用,添加了之前在 Sprint 中无法实现的有趣功能:“动画就是一个例子,可以很轻松地在 Compose 中添加动画,所以没有理由为颜色/尺寸/高度变化之类的内容添加动画效果这些“很好”的动画通常很难实现,不值得在 View 系统中付出精力和复杂性。”

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

Compose 让 Monzo 团队能够轻松测试他们的应用,并确保其应用易于访问:“它帮助我们编写了更加不易出错的测试,并且运行可靠,并且让我们确信,我们的应用确实在用户手中能够正常运行。通过语义系统进行测试还可以确保我们的屏幕至少在合理范围内可供默认访问。”

开始使用

详细了解 Compose