Nubank

使用 Flutter 在 Nubank 实现规模化和完整性

成功指标

30%

与 iOS 相比,合并成功率更高

600%

更快的合并速度

目标

Nubank 是亚洲以外最大的独立数字银行,为超过 4800 万人提供了一种安全便捷的方式,让他们能够随时随地管理自己的财务生活。通过使用云技术和简化的用户界面,他们的目标是为普通大众简化银行业务的复杂性。

该公司发展速度极快,他们需要一种方法来快速开发和发布新产品,同时又不牺牲质量。不幸的是,Nubank 难以找到足够的原生移动开发专家来满足其雄心勃勃的发展步伐。因此,他们的 iOS 和 Android 团队经常出现不平衡的情况,导致一个平台的功能先于另一个平台发布。除此之外,重复编写每个功能开始让人感觉像是浪费时间。

Nubank 得出结论,专门的团队无法很好地扩展,并开始寻找一种让单个团队端到端开发功能的方法。通过一个混合平台,后端开发人员将能够为移动前端做出贡献,产品能够更快地发布。他们只需要找到满足 Nubank 需求的合适的跨平台技术。

为什么选择 Flutter?

Nubank 组建了一个工作组,调查了一些最流行的混合移动平台,包括 Kotlin Native、React Native 和 Flutter。目标是找到一种解决方案,允许他们的团队自主工作,在单一的架构、编程语言和约定集上开发移动应用程序并交付价值。

工作组由 Nubank 最有经验的移动开发人员组成,他们根据 11 个主要优先级评估了他们的选择。这些包括开发者体验、平台的长期可行性、增量抽象成本、非线性抽象风险以及应用程序在 iOS 和 Android 上看起来和感觉相同的可能性。

为此,他们通过动手测试、与专家的交流、反馈会议、内部可用性测试等方式,在这些领域的每一个领域为每个候选平台分配了一个分数。

对于可用性测试,工作组观察了各个级别和背景的开发人员进行一小时的测试。开发人员获得了一个正在运行的应用程序、开发环境、平台文档和一些需要编写的任务,例如构建一个“快捷方式”按钮。然后,在测试结束后,他们回答了一个简短的问卷。

正如工作组发现的那样,开发人员非常喜欢 Flutter。与其他选项相比,它提供了更好的热重载功能、强大的文档和更稳定的 API。而且使用起来非常有趣。因此,在他们的研究完成后,工作组发布了一份 54 页的报告,命名了他们推荐的平台:Flutter。

他们的解决方案

选择很明确。Flutter 在几乎所有类别中都表现出色,在开发者体验、文档、API 稳定性、缺乏平台专业化等方面都优于其他平台。团队还 喜欢 Flutter 的测试功能,特别是内置的单元测试、集成测试和端到端测试基础设施,无需渲染到屏幕上。

在做出决定后,Flutter 成为 Nubank 的移动开发首选方案。从那时起,所有新功能都使用 Flutter 编写,旧功能也逐步迁移过来。

“Flutter 拥有我们开箱即用所需的一切:关于如何集成我们的应用程序的良好文档,以及真正有效的热重载,来自社区的支持以及工具。”

- Igor Borges,软件工程师,Nubank

“将 Flutter 作为我们的主要技术,大大降低了门槛,使新工程师能够在入职几天后就能为我们的应用程序做出贡献。”

- Noe Branagan,工程经理,Nubank

结果

Flutter 已经成为 Nubank 的游戏规则改变者,使他们能够在不牺牲质量的情况下继续扩展规模。他们的许多工程师已经能够转型为全栈工程师,同时提高了开发人员的生产力和工作满意度。由于 Flutter 的入职流程非常简单,新工程师能够在入职几天内为应用程序做出贡献。即使是非移动工程师,也只需几周就能变得高效。

他们的构建时间也得到了显著改善。使用 Flutter,Nubank 在短短三个月内就推出了一项新的寿险功能——这是他们有史以来最快的发布速度。此前,开发和发布新产品需要几个月到一年的时间。为了进一步加快开发速度,Nubank 还采用了使用 Flutter 桌面版的实验性内部开发工具,该工具通过跳过模拟器来减少笔记本电脑的电池消耗。它还有助于快速测试不同设备尺寸。

事实上,Flutter 导致了整体性能的提升。使用 Flutter,Nubank 的合并成功率比使用原生平台时高出 30%。平均而言,Flutter 的拉取请求只需 9.9 分钟即可合并,而所有平台的平均合并时间为 70.45 分钟。Flutter 还为 Nubank 提供了更多见解,例如能够按功能或软件包衡量应用程序的大小,并将指标与其他系统相关联。

它还提供了更一致的 UI。使用原生工具时,Nubank 过去拥有多个且不一致的组件库。现在,他们拥有自己的设计系统,产品团队可以扩展和自定义该系统。他们还创建了一个工具来动态地向其应用程序交付新内容,使他们能够在不发布新版本应用程序的情况下本地化内容。

在 Nubank,Flutter 现在已经成为一种良好的文化的一部分。