eBay

eBay

Flutter 讓 eBay 的工程師們欣喜不已

成功指標

98.3%

共享程式碼

70%

開發人員認為開發速度比原生解決方案快 2 倍

100%

開發人員表示他們更喜歡 Flutter,而不是 iOS 或 Android

目標

多年來,汽車愛好者一直依賴 eBay 買賣稀有汽車,但卻沒有專屬於他們的應用體驗。因此,在 2018 年,eBay Motors 團隊被要求在一年內為 AndroidiOS 開發一款新應用,該應用需具備完整的功能集,並與主 eBay 應用擁有相同的外觀和使用感受。

團隊深知,以他們有限的人力,在規定時間內構建兩個獨立的原生應用是不可能的,因此他們開始尋找一種能夠幫助他們按時完成任務的跨平臺解決方案。

為什麼選擇 Flutter?

團隊聽說了許多關於 Flutter 的訊息,它在幾周前剛剛釋出了第一個完整版本。儘管 eBay 對過去研究過的其他跨平臺 SDK 印象不深,但 Flutter 聽起來像是一個很有前途的替代方案。由於團隊需要快速工作並保持原生體驗,他們對 Flutter 節省時間和設計功能感到特別興奮,因此他們決定嘗試一下。

他們的解決方案

興趣被激發後,eBay 花了一個月的時間試圖找出 Flutter 功能上的不足。令他們驚訝和高興的是,Flutter 能夠處理他們想到的所有問題。

受到鼓舞,eBay Motors 團隊安排了一系列研討會,讓工程團隊熟悉 Flutter。沒有人有任何先前的經驗,所以他們報名參加了 AppBrewery 的 Flutter Bootcamp,並在公司內部舉辦了一系列實踐研討會。

從一開始,團隊就對 Flutter 感到興奮。每個人都發現開發體驗更有趣,他們發現使用 Flutter 構建比使用他們過去使用的原生工具快得多。例如,在原生 Android 和 iOS 開發中,開發人員需要幾分鐘才能在模擬器中看到他們的程式碼反映出來。使用 Flutter,只需幾秒鐘

他們還對 Flutter 開箱即用的測試支援印象深刻,這大大超出了他們的預期。他們甚至決定堅持 100% 的程式碼覆蓋率,並透過自動化他們的拉取請求來強制執行。

當然,跨平臺程式碼共享的程度是一個巨大的吸引力。Flutter 允許團隊共享幾乎所有程式碼:使用者介面、業務邏輯、領域模型、分析、網路堆疊,甚至 CI 管道。還有很多外掛可以幫助他們整合所需的裝置 API,在少數幾次團隊需要自己編寫時,工作也在幾小時內完成。

最終,最大的挑戰僅僅是如何統一他們一直獨立工作的 Android 和 iOS 團隊。但透過仔細規劃,他們能夠作為一個整體團隊走到一起,這讓他們在公司內部擁有更強大、更一致的聲音。

“Flutter 不僅達到了我們的預期,而且大大超出了我們的預期。”

- Corey Sprague,eBay 高階 iOS 工程師

成果

透過大大縮短開發時間,eBay Motors 團隊按時完成了生產計劃中的所有截止日期。他們在最初請求後的三個月內推出了測試版,並在幾個月後釋出了完整的生產應用。

更棒的是,新的 eBay Motors 應用收到了使用者的好評,並且也受到了開發人員的歡迎。在一次內部調查中,eBay Motors 團隊中 100% 的開發人員表示他們比 iOS 或 Android 更喜歡 Flutter 開發,70% 的人表示他們認為它“至少快兩倍”。

事實上,得益於 Flutter,eBay Motors 現在每週都會向兩個應用商店釋出新版本的應用,並且能夠同時向兩個平臺新增即時聊天、託管和社群論壇等新功能。透過將整個開發團隊集中管理,他們還節省了大量時間。現在他們的應用共享 98.3% 的程式碼,eBay Motors 應用擁有一個單一的事實來源——這意味著一套會議、一套設計、一個待辦事項佇列和一個團隊來管理。

速度的提升也使他們能夠用功能原型代替紙質原型進行使用者測試,從而獲得更可靠的結果。而且由於測試自動化如此強大,團隊將他們的兩名 QA 工程師都轉變為軟體工程師。

如果您詢問 eBay Motors 的工程團隊,他們會說 Flutter 不僅僅改進了他們的工作流程。它實際上從根本上改變了團隊的運作方式,使他們不僅更高效,而且對工作更快樂、更興奮。