作者 / 工程總監 David Ko 及 Pankaj Gupta、軟件工程師 Jeff Lim 及 Will Horn
三年前,我們發布了 Google Pay 印度版 (當時稱作 Tez),當時我們的願景是爲所有印度人民打造一款便捷而安全的支付應用。我們以實現便捷支付的目標爲前提,構建了一個讓支付如同聊天一樣簡單的界面。簡潔的設計立即引發了用戶的共鳴。隨著時間的推移,我們還陸續加入了一些除支付外的新功能。如今,用戶可以通過該應用完成支付賬單、手機充值、即時從銀行貸款以及購買火車票等更多操作。去年,我們還在印度發布了 Spot Platform,商家可利用該平台在 Google Pay 應用內打造品牌體驗,以更具吸引力的方式與客戶建立聯系。
當我們著眼于將印度的開發經驗拓展至世界其他地區時,我們想要將關注重點放在快速高效的開發環境上,令其具有現代風格與吸引力,並兼具靈活性,從而確保 UI 清爽幹淨。更爲重要的一點是,我們能通過該開發環境完成一次寫入,即可同時在 iOS 和 Android 上進行部署,由此來觸達更廣泛的用戶。
很明顯,我們需要構造這樣的開發環境,並確保其能在各種支付渠道、基礎架構和操作系統下正常運行。但是隨著 Google Pay 在印度的發展勢頭日漸強勁,以及其本身快速發展的産品特性,開發資源限制了我們無法立即開展這一工作。
在權衡多種選擇後,顯然 Flutter 才是明智之選。我們選擇 Flutter 的三個理由:
- 可通過 Dart 完成一次寫入,並能同時在 iOS 和 Android 上進行部署,使得 iOS 和 Android 上的用戶都能獲得同樣的最佳體驗;
- 在開發期間可使用即時編譯和熱重載功能,從而實現 UI 快速叠代,大幅提高開發者效率;
- 預編譯功能可以確保實現高性能部署。
- Flutter 開發者中文社區https://flutter.cn/
接下來的任務就是著手開發。起初我們是一個小團隊,成員只有三名來自 Android 和 iOS 的軟件工程師。在那段日子裏,我們全神貫注,熱情滿滿。首先我們創建了應用的垂直切片 (vertical slice),其中包括主頁、聊天和支付 (包含印度關鍵的本地支付插件)。團隊先是嘗試了混合方法,在發現其不可擴展後決定完全重構程序。
我們爲團隊裏的其他工程師進行了幾次小型叠代沖刺,使得他們能夠重構 Flutter 中的內容並提供反饋。Flutter 深受衆人的喜愛,您可以看到人們在談論 Flutter 快速構建 UI 的性能時,臉上流露出的激動神情。最令人激動的是,團隊可以在開發過程中得到即時反饋。我們還可以利用高質量的 Flutter widget 來簡化開發。
在仔細權衡風險並分析了我們的遷移案例後,我們決定全面采用 Flutter 進行開發。這是具有裏程碑意義的重構,而在我們重構功能時,現有應用還在繼續發展。在幾個月的開發工作後,Google Pay 現可在印度和新加坡的開放測試中使用 Flutter。印度和新加坡的用戶能夠訪問 Google Play 商店頁面,選擇 Google Pay 以進入測試版計劃,體驗基于 Flutter 打造的最新應用。下一步,我們期待利用 Flutter 來發布 Google Pay,以供全世界的 iOS 和 Android 用戶使用。
Google Payhttps://play.google.com/store/apps/details?id=com.google.android.apps.nbu.paisa.user
我們希望本文能幫助您了解如何處理和發布一款完全重構的現有應用,以供數百萬用戶和各種規模的企業所使用。如果沒有 Flutter 平台的持續進步,我們將無法做到這一點。衷心感謝 Flutter 團隊,因爲如今我們正站在他們的肩膀上!
完全遷移後,Google Pay 將成爲 Flutter 平台最大的生産部署之一。我們期待在未來與大家分享向 Flutter 轉型的更多經驗。
轉載自:谷歌開發者原創文章