宝马

BMW

宝马集团使用 Flutter 扩展以客户为中心的产品开发

目标

多年来,宝马的移动应用团队主要专注于其车载伴侣应用——宝马和 MINI Connected 应用的 iOS 版本。然而,到 2018 年,他们意识到其 iOS 和 Android 应用在功能和设计上的差异已变得过大。他们需要找到一种方法,确保无论移动操作系统、宝马还是 MINI 品牌,所有用户都能获得相同的功能,同时不显著增加成本或减慢功能开发速度。除了整合 iOS 和 Android 的复杂性之外,宝马集团在产品端还需要管理更多的复杂性。由于不同的法规和当地要求,宝马集团的移动应用在超过 45 个国家/地区存在多种不同版本。

在解决这个问题时,团队有两个目标。从业务角度来看,他们希望能够根据客户反馈和业务目标,定期在所有品牌、平台和地区同时发布具有相同功能的产品。为此,他们希望创建一个开发者友好、可扩展且高性能的平台,提供安全的实验和持续部署。

为什么选择 Flutter?

由于不可能将 iOS 开发团队的数量翻倍以支持 Android(这会使成本和精力翻倍),因此他们评估了跨平台解决方案。一个小型专项小组评估了包括 Flutter 在内的多个跨平台框架。最初,团队担心 Flutter 对于宝马所需的运营规模来说还不够成熟,因此他们使用其他每个框架设计了多个概念验证。然而,当团队决定为了更好的用户体验而放弃基于 Web 的内容时,所有其他平台都无法满足要求。

他们的解决方案

2019 年 10 月,一群宝马工程师在慕尼黑会面,讨论如何推进 Flutter。他们很快意识到,不再受限于特定平台将使他们能够采用更灵活、基于领域(domain-based)的组织结构,其中一个团队可能专注于连接状态和通信抽象,而另一些团队则负责应用的核心平台部分,还有几个团队可以自由地专注于为最终用户开发新的创新功能。Flutter 获得了批准,团队开始为不同的平台、国家和品牌重写所有应用版本——但这次,使用单一代码库。

“新的应用平台建立在三大支柱之上:用户友好性、安全性和可靠性。它根据客户的反馈和使用行为,提供一套跨所有品牌、设计一致的功能。”

尼古拉·克莱默博士,宝马集团非车载平台副总裁

成果

启动不到一年,My BMW 应用于 2020 年 7 月发布,并已在五大洲 47 个国家/地区确立了其作为通用界面的地位,为用户在手机、车辆和数字世界之间提供了无缝体验。My BMW 应用既提供了驾驶员与车辆之间的直接接口,也提供了与宝马经销商和宝马品牌的沟通渠道。

宝马集团的移动开发人员建立了一个内部称为“Mobile 2.0 平台”的平台,该平台支持对每个品牌、市场和操作系统的自动化构建、自动化测试以及部署到移动端和后端。这意味着每天会触发多次构建,每次应用构建都会自动生成、测试和部署 96 个变体。截至 2021 年 10 月,每个应用变体已构建了超过 10,000 个版本。一次构建和设计多次部署的能力使团队的效率大大提高。但快速的周转并非团队选择 Flutter 的唯一兴奋点。他们不再需要担心管理多个代码库,这有效地解决了功能差异的问题。

现在,所有宝马和 MINI 客户无论使用何种平台访问应用,都能享受到统一的体验——这也改善了用户反馈,特别是对于长期服务不足的 Android 应用。总而言之,通过转向 Flutter,团队能够更快地行动,保持一致性,并取悦用户。