
eBay

使用 Flutter 提升 eBay 工程师体验
成功指标
98.3%
共享代码
70%
开发者认为开发速度是原生解决方案的两倍
100%
开发者表示他们更喜欢 Flutter 而不是 iOS 或 Android
目标
多年来,汽车爱好者一直依赖 eBay 来买卖稀有汽车,但一直没有专门为他们提供的应用体验。因此,在 2018 年,eBay Motors 团队被要求为 Android 和 iOS 开发一款新的应用程序,该应用程序具有完整的功能集,并且与主要的 eBay 应用程序具有相同的外观和感觉——所有这些都必须在一年的时间内完成。
团队知道,鉴于他们规模有限,在这么短的时间内构建两个独立的原生应用程序是不可能的,因此他们寻找了一种跨平台解决方案来帮助他们按时完成任务。
为什么选择 Flutter?
团队听说过很多关于 Flutter 的消息,Flutter 就在几周前发布了第一个完整版本。尽管 eBay 之前对研究过的其他跨平台 SDK 感到不满意,但 Flutter 看起来像是一个很有希望的替代方案。由于团队需要快速工作并保持原生体验,他们对 Flutter 的省时和设计功能尤其兴奋,因此他们决定尝试一下。

他们的解决方案
eBay 对 Flutter 产生了兴趣,并花了一个月的时间试图找出 Flutter 功能的不足之处。令他们惊讶和高兴的是,Flutter 能够处理他们能想到的所有事情。
eBay Motors 团队受到鼓舞,安排了一系列研讨会,帮助工程团队快速上手 Flutter。团队成员之前都没有任何 Flutter 经验,因此他们注册了来自 AppBrewery 的 Flutter 集训营,并在内部举办了一系列动手研讨会。
从一开始,团队就对 Flutter 感到兴奋。每个人都发现开发体验更加有趣,并且他们发现使用 Flutter 构建比使用过去使用的原生工具要快得多。例如,在原生 Android 和 iOS 开发中,开发人员可能需要几分钟才能在模拟器中看到他们的代码反映出来。使用 Flutter,只需几秒钟。
他们还对 Flutter 开箱即用的测试支持印象深刻,这大大超出了他们的预期。他们甚至决定坚持 100% 的代码覆盖率,并通过自动化拉取请求来执行此操作。
当然,跨平台代码共享的水平也是一个巨大的吸引力。Flutter 允许团队共享几乎所有内容的代码:UI、业务逻辑、领域模型、分析、网络栈,甚至 CI 管道。还有许多插件可以帮助他们集成所需的设备 API,并且在团队需要自己编写插件的少数情况下,工作也能在几个小时内完成。
最终,最大的挑战是如何统一 Android 和 iOS 团队,这两个团队一直都是独立工作的。但通过仔细的计划,他们能够作为一个团队走到一起,从而在公司内部拥有更强大、更一致的声音。
“Flutter 不仅满足了我们的期望,而且大大超出了我们的期望。”
- Corey Sprague,eBay 高级 iOS 工程师
结果
通过大幅缩短开发时间,eBay Motors 团队按时完成了生产计划中的每个截止日期。他们在最初请求后的三个月内发布了测试版,并在几个月后发布了完整的产品应用程序。
更棒的是,新的 eBay Motors 应用程序获得了用户的好评,并且开发人员也非常喜欢它。在内部调查中,eBay Motors 团队 100% 的开发人员 表示他们比使用 iOS 或 Android 更喜欢 Flutter 开发,70% 的人表示他们认为 Flutter 的速度“至少快了两倍”。
事实上,多亏了 Flutter,eBay Motors 现在每周都会向两个应用商店发布新版本的应用程序,并且能够同时向两个平台添加实时聊天、托管和社区论坛等新功能。通过将整个开发团队聚集到一起,他们还能够节省大量时间。现在,他们的应用程序共享了 98.3% 的代码,eBay Motors 应用程序拥有一个单一的真相来源——这意味着只需召开一次会议、设计一次、排队一次,并且只需管理一个团队。
速度的提高还使他们能够用功能原型替换纸质原型进行用户测试,从而获得更可靠的结果。并且由于测试自动化非常强大,团队将他们的 QA 工程师都转换成了软件工程师。
如果你问 eBay Motors 的工程团队,他们会说 Flutter 不仅仅是改善了他们的工作流程。它实际上从根本上改变了团队的运营方式,使他们不仅更有效率,而且更快乐,对自己的工作也更兴奋。