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