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 不仅仅改进了他们的工作流程。它实际上从根本上改变了团队的运作方式,使他们不仅更高效,而且对工作更快乐、更兴奋。