eBay

eBay

使用 Flutter 提升 eBay 工程师体验

成功指标

98.3%

共享代码

70%

开发者认为开发速度是原生解决方案的两倍

100%

开发者表示他们更喜欢 Flutter 而不是 iOS 或 Android

目标

多年来,汽车爱好者一直依赖 eBay 来买卖稀有汽车,但一直没有专门为他们提供的应用体验。因此,在 2018 年,eBay Motors 团队被要求为 AndroidiOS 开发一款新的应用程序,该应用程序具有完整的功能集,并且与主要的 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 不仅仅是改善了他们的工作流程。它实际上从根本上改变了团队的运营方式,使他们不仅更有效率,而且更快乐,对自己的工作也更兴奋。