Kijiji
Kijiji 使用 Flutter 更快地推出功能
成功指标
50%
推出新功能所需时间减少
64%
代码库大小减少
目标
Kijiji 移动应用程序拥有近 1100 万月活跃用户,需要在各个平台上快速、可靠且一致。然而,经过多年的发展,Kijiji 的原生应用程序已经发展到数百万行代码,并积累了大量的技术债务。团队需要一种方法来简化其代码库,实现平台之间功能的统一,并确保应用程序能够为用户平稳运行。
为什么选择 Flutter?
团队考虑了多种原生和跨平台解决方案,并在高级管理层的建议下,决定研究 Flutter。作为一项实验,他们举办了一场为期两天的内部黑客马拉松,邀请 Kijiji 的所有网页、后端和移动开发人员使用 Flutter 重建和重新构想其现有的功能集。
“我们对 Flutter 为团队提供的创造力印象深刻,它使我们的团队能够有效率地创建客户所期望的改变,”Kijiji 首席技术官迈克·巴克斯特说。
黑客马拉松结束后,他们收集了有关开发人员体验的反馈。总体而言,开发团队非常喜欢使用 Flutter,并且很明显它将帮助团队克服许多现有的问题,因此他们决定进行切换。
他们的解决方案
Kijiji 聘请了一位经验丰富的 Flutter 架构师来领导团队重建其移动应用程序。
使用 Flutter 重建其原生应用程序使他们能够消除技术债务并从头开始。从一开始就进行跨平台构建也使他们能够在 iOS 和 Android 上以统一的方式部署功能,这在过去一直是一个挑战。平台特定的约束有时会使跨平台维护一致的体验变得困难,但 Flutter 使得同步部署变得更加容易。
例如,在他们的原生应用程序中,团队在整个代码库中创建了大量的自定义视图和可重用组件。但是,为了使这些组件真正可重用,他们必须用功能来重载它们,以使它们适用于所有场景。这不仅涉及大量的额外代码,而且意味着如果一个自定义视图出现故障,它将在整个应用程序的多个地方出现故障。
当他们迁移到 Flutter 时,团队选择利用小部件,使每个小部件和组件都保持自包含。这使得多个开发人员可以同时处理应用程序的不同部分,而不会互相干扰。它还将组件限制在所需的功能范围内,并减少了他们需要编写的代码量。
“Flutter 是一个一流的开发环境。即使您是原生开发人员,学习曲线也相对较快,该软件真正使我们的团队能够现代化我们的应用程序并创造更无缝的客户体验。”
-Mike Baxter,Kijiji 首席技术官
结果
迁移到 Flutter 为 Kijiji 节省了大量的开发时间,使他们能够快速为加拿大人提供改进的应用程序体验。最初的 Kijiji 原生应用程序每个平台大约需要 2-3 年才能构建,总共大约需要 6 年的开发时间。Flutter 使他们能够在短短 9 个月内重新创建 Kijiji 移动应用程序的核心功能。虽然以前平均需要 2-4 个冲刺才能发布一个主要功能,但 Flutter 使他们能够将新功能的发布时间缩短一半,从而使团队能够更快地进行创新、迭代并以客户要求的新功能更快地进入市场。
该团队还能够通过在竞争中脱颖而出,更快地雇用有才华的开发人员。他们最初的移动团队由 4 名 iOS 开发人员和 4 名 Android 开发人员组成,他们在 2 年内被雇用,但他们能够在 6 个月内雇用 12 名经验丰富的 Flutter 开发人员。
最后,Kijiji 团队能够大幅减少他们依赖的库和依赖项的数量,从而获得更简化的体验。他们能够将原生 Android 应用程序中的代码库从超过 250 万行代码减少到大约 90 万行代码,并实现 100% 的代码覆盖率,从而使其更易于维护并避免未来的技术债务。在最终功能验证后,Kijiji 团队于 2023 年 3 月 7 日向用户推出了他们的新 Flutter 应用程序。