
eBay

eBay 工程师因 Flutter 而欣喜不已
成功指标
98.3%
共享代码
70%
开发者认为开发速度是原生解决方案的 2 倍
100%
开发者表示他们更喜欢它,而非 iOS 或 Android
目标
多年来,汽车爱好者一直依赖 eBay 买卖稀有车辆,但一直没有专门为他们设计的应用体验。因此,2018 年,eBay Motors 团队受命为 Android 和 iOS 开发一款新应用,要求其具备完整的功能集并与主要的 eBay 应用具有相同的外观和使用感受——所有这些都必须在不到一年的时间内完成。
团队深知,以他们有限的人员规模,在如此短的时间内构建两个独立的原生应用是不可能的,因此他们开始寻找一种能够帮助他们按时完成任务的跨平台解决方案。
为什么选择 Flutter?
团队此前听闻了许多关于 Flutter 的议论,它在几周前刚刚发布了第一个完整版本。尽管 eBay 过去对他们研究过的其他跨平台 SDK 印象不深,但 Flutter 听起来像是一个有前景的替代方案。由于团队需要快速工作并保持原生体验,他们对 Flutter 的省时和设计能力尤其兴奋,因此决定尝试一下。

他们的解决方案
兴趣大增的 eBay 花了一个月时间试图寻找 Flutter 能力上的不足。令他们惊喜和欣喜的是,Flutter 能够处理他们能想到并抛给它的所有问题。
受到鼓舞的 eBay Motors 团队安排了一系列研讨会,以帮助工程团队快速上手 Flutter。由于没有人有任何先前经验,他们报名参加了来自 AppBrewery 的 Flutter 训练营,并在内部举办了一系列动手实践研讨会。
从一开始,团队就对 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 应用拥有了单一事实来源——这意味着一套会议、一套设计、一个待办事项队列和一个团队来管理。
提高的速度还使他们能够用可运行的原型取代纸质原型进行用户测试,从而获得更可靠的结果。而且由于测试自动化非常强大,团队将他们的两位质量保证工程师转变为软件工程师。
如果你询问 eBay Motors 的工程团队,他们会说 Flutter 不仅仅改善了他们的工作流程。它实际上从根本上改变了团队的运作方式,使他们不仅更高效,而且对工作更快乐、更兴奋。