![gpay_logo.png](https://storage.googleapis.com/cms-storage-bucket/images/gpay_logo.width-128.png)
Google Pay
![Google Pay](https://storage.googleapis.com/cms-storage-bucket/images/header_Google_Pay_1.width-1440.format-webp-lossless.webp)
使用 Flutter 实现 Google Pay 的全球化
成功指标
70%
工程工作量减少
35%
代码行数减少
目标
Google Pay 拥有数千万用户,遍布数十个国家/地区,使用户能够在全球范围内进行支付、储蓄、管理支出等等。但要实现这一点,他们需要依靠 Android 和 iOS 应用程序之间 170 万行代码——随着 Google Pay 继续扩展到新的国家/地区,这一数量似乎难以维持,因为每个国家/地区都需要其独特的功能。
更具挑战性的是,许多新地区拥有大量 iOS 用户,而他们现有的用户几乎全部都是 Android 用户。这意味着他们不仅需要聘用更多 iOS 工程师,还需要继续构建每个功能两次——一次针对 Android,一次针对 iOS。
因此,他们选择投资一个跨平台框架,使他们能够用更少的资源做更多的事情:Flutter。
为什么选择 Flutter?
团队最初将 Flutter 作为 添加到应用 的一种可能性进行了测试,但重写整个应用程序的机会实在太诱人了,不容错过。
虽然这意味着需要前期投入大量的工程资源,但它将使团队能够统一其工程领导力,将工作从无休止地修补漏洞转向,并提高客户端开发的速度和效率,从而实现更快的响应和实施时间。
最重要的是,迁移到 Flutter 将使 Google Pay 在全球范围内快速、高效地扩展。而 Android 和 iOS 上的功能构建需要付出双倍的努力,Flutter 则只需要大约 1.2 倍的工作量。因此,他们决定放手一搏。
![](https://storage.googleapis.com/cms-storage-bucket/images/body_image_2_Google_Pay_15-_dpi.width-800.png)
他们的解决方案
在 Flutter 上重建 Google Pay 并非没有挑战。首先,他们需要对团队进行新语言、新平台和用户界面新方法的再培训。其次,他们需要在应用程序不断更新的过程中重写它。最后,他们需要再次完成所有必要的安全审查和审计,而应用程序已经上线。
但在所有这些之前,他们必须证明这个概念的可行性。因此,在 2019 年,他们花了几个月时间为将 Google Pay 迁移到 Flutter 构建案例。来自 Android 和 iOS 的三位高级软件工程师组成一个小团队,编写和重写代码,直到他们构建了应用程序的一个垂直切片——主页、聊天和支付(以及关键的原生插件)。
然后,他们为其他工程师运行了一些小型 sprint,让他们有机会提供反馈。Flutter 非常受欢迎——团队喜欢他们在开发过程中能够获得即时反馈,以及他们可以利用的大量高质量 widget 来简化开发。
一旦他们获得高级管理层的批准,他们就引入了 50 名工程师,并给了他们六个月的时间对应用程序进行再培训和重写,以便在新加坡进行 Beta 版发布。
发布取得了成功。受到鼓舞,他们又引入了 100 名工程师,帮助他们在 Flutter 代码库上重新发布印度和美国的 Google Pay。这是一场与时间赛跑:他们需要重写一个现有的包含近 300 个功能的应用程序并进行 Beta 测试,然后发布给超过 1 亿的月活跃用户,同时还要维护旧版应用程序。
“每个人都喜欢 Flutter——你可以看到人们脸上兴奋的表情,他们谈论着构建用户界面的速度有多快。”
- David Ko,Google Pay 工程总监
结果
尽管面临这些挑战,团队还是在 8 月初在印度启动了 Google Pay 的 Beta 测试。
重建的 Google Pay 应用程序更小、管理效率更高且更容易更新。尽管添加了一些新功能,但新代码库比原始实现小了 35%——110 万行代码而不是 170 万行。同时,团队估计他们节省了大约 60% 到 70% 的工程师时间,因为 Flutter 实在太容易管理了。
该团队(现在约有 180 名软件工程师)仍在收集印度 Beta 测试的反馈,但结果看起来很有希望。印度 Beta 版将在今年晚些时候推广到所有 1 亿多印度用户,为他们带来全新的用户界面以及他们已经熟悉和喜爱的所有功能。
借助 Flutter,Google Pay 3.0 将能够在 iOS 和 Android 上快速高效地扩展,首先是在今年对美国 Google Pay 进行重大重新发布。这项技术为团队在 2021 年将 Google Pay 3.0 扩展到世界其他地区奠定了基础。