
Nubank
Nubank 借助 Flutter 实现有原则的规模化发展
成功指标
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 Desktop 的实验性内部开发工具,该工具通过跳过模拟器来减少笔记本电脑的电池使用量。它还有助于在不同设备尺寸下进行快速测试。
事实上,Flutter 带来了全面的性能提升。使用 Flutter,Nubank 的合并成功率比原生平台提高了 30%。平均而言,Flutter 的拉取请求只需 9.9 分钟即可合并,而所有平台的平均时间为 70.45 分钟。Flutter 还为 Nubank 提供了更多洞察力,例如能够按功能或软件包测量应用程序大小,并将指标与其他系统关联起来。
它还提供了更多用户界面一致性。使用原生工具时,Nubank 过去有多个且不一致的组件库。现在,他们拥有自己的设计系统,产品团队可以扩展和自定义。他们还创建了一个工具,可以动态地向其应用程序提供新内容,从而无需发布新版本的应用程序即可本地化内容。
在 Nubank,Flutter 现已成为文化的一部分。