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。