Google Pay

Google Pay

Google Pay 攜手 Flutter 走向全球

成功指標

70%

工程工作量減少

35%

程式碼行數減少

目標

Google Pay 擁有數千萬使用者,遍佈數十個國家/地區,讓全球使用者能夠支付、儲蓄、管理支出等等。但為了實現這一目標,他們的 AndroidiOS 應用總計使用了 170 萬行程式碼——隨著 Google Pay 繼續擴充套件到新的國家/地區(每個國家/地區都需要自己的獨特功能),這種程式碼量變得不可持續。

更具挑戰性的是,這些新地區中有許多擁有大量 iOS 使用者,而他們現有的使用者幾乎全是 Android 使用者。這意味著他們不僅需要僱傭更多的 iOS 工程師,還需要繼續為每個功能構建兩次——一次用於 Android,一次用於 iOS。

因此,他們選擇投資一個跨平臺框架,使他們能夠事半功倍:Flutter。

為什麼選擇 Flutter?

團隊最初將 Flutter 作為“新增到應用”的可能性進行測試,但重寫整個應用的機會實在太大了,不容忽視。

雖然這意味著前期需要投入大量的工程資源,但它將使團隊能夠統一其工程領導力,將工作從無休止地修補漏洞中解放出來,並提高客戶端開發的效率和速度,從而加快響應和實施時間。

最重要的是,遷移到 Flutter 將使 Google Pay 能夠在全球範圍內快速、高效地擴充套件。雖然在 Android 和 iOS 上構建功能需要雙倍的精力,但 Flutter 只需約 1.2 倍的工作量。因此,他們決定放手一搏。

他們的解決方案

用 Flutter 重建 Google Pay 並非沒有挑戰。首先,他們需要對團隊進行新語言、新平臺和新的使用者介面方法的再培訓。然後,他們需要重寫不斷更新的應用程式。最後,他們還需要對已釋出的應用程式再次進行所有必要的安全審查和審計。

但在此之前,他們必須驗證概念。因此在 2019 年,他們花了幾個月的時間為 Google Pay 遷移到 Flutter 編寫案例。由三名來自 Android 和 iOS 的高階軟體工程師組成的小團隊齊心協力,反覆編寫,直到他們完成了應用程式的一個垂直切片——主頁、聊天和支付(帶有關鍵的原生外掛)。

然後,他們為其他工程師進行了幾次小型衝刺,讓他們有機會提供反饋。Flutter 大受歡迎——團隊喜歡他們可以在開發過程中獲得即時反饋,以及他們可以利用大量高質量小部件來簡化開發。

獲得高層管理人員的批准後,他們引入了 50 名工程師,並給了他們六個月的時間進行再培訓和重寫應用程式,以便在新加坡進行 Beta 版釋出。

釋出取得了成功。受到鼓舞,他們又引入了 100 名工程師,幫助他們在 Flutter 程式碼庫上重新發布了 Google Pay 在印度和美國。這是一場與時間的賽跑:他們需要重寫一個擁有近 300 個功能的現有應用程式並進行 Beta 測試,然後向超過 1 億的月活躍使用者釋出,同時還要維護舊版應用程式。

“每個人都喜歡 Flutter——當他們談論構建使用者介面有多快時,你可以看到人們臉上的興奮。”

- David Ko,Google Pay 工程總監

成果

儘管面臨這些挑戰,團隊還是在 8 月初在印度推出了 Google Pay 的 Beta 測試版。

重建後的 Google Pay 應用程式更小、管理效率更高、更新更容易。儘管增加了幾個新功能,但新的程式碼庫比最初的實現小 35%——從 170 萬行程式碼減少到 110 萬行。同時,團隊估計他們節省了大約 60-70% 的工程師時間,因為 Flutter 更容易管理。

該團隊——現在有近 180 名軟體工程師——仍在收集印度 Beta 測試的反饋,但結果看起來很有希望。印度 Beta 版將於今年晚些時候向所有超過 1 億的印度使用者推出,帶來全新的使用者介面以及他們使用者所熟知和喜愛的所有功能。

藉助 Flutter,Google Pay 3.0 將能夠在 iOS 和 Android 上快速高效地擴充套件,從今年 Google Pay 在美國的大規模重新發布開始。這項技術為團隊在 2021 年將 Google Pay 3.0 擴充套件到世界其他地區奠定了基礎。