Kijiji

Kijiji

Kijiji 使用 Flutter 加速功能发布

成功指标

50%

发布新功能所需时间缩短

64%

代码库大小缩减

目标

Kijiji 移动应用每月活跃用户近 1100 万,需要确保其快速、可靠并在各个平台上保持一致。然而,经过数年发展,Kijiji 的原生应用代码行数已达数百万行,并积累了大量的技术债务。团队需要一种方法来简化其代码库,实现跨平台功能一致性,并确保应用能够为用户流畅运行。

为什么选择 Flutter?

团队考虑了多种原生和跨平台解决方案,并在高级管理层的建议下,决定尝试 Flutter。作为一项实验,他们在 Kijiji 内部组织了一场为期两天的黑客马拉松,邀请所有网页、后端和移动开发者使用 Flutter 重建和重新构思其现有的功能集。

“我们对 Flutter 为团队带来的创造力印象深刻,它使我们的团队能够有效率地创建客户需要的变化,”Kijiji 首席技术官 Mike Baxter 说。

黑客马拉松结束后,他们收集了开发者体验反馈。总体而言,开发团队非常享受使用 Flutter 的过程,并且显而易见的是,它将帮助团队克服许多现有的问题,因此他们决定切换到 Flutter。

他们的解决方案

Kijiji 聘请了一位经验丰富的 Flutter 架构师来领导团队重建其移动应用。

使用 Flutter 重建他们的原生应用使他们能够消除技术债务并从头开始。从一开始就构建跨平台应用也使他们能够在 iOS 和 Android 上实现功能一致性,这在过去一直是一个挑战。平台特定的限制有时会使跨平台维护一致的体验变得困难,但 Flutter 使并行部署变得更容易。

例如,在他们的原生应用中,团队在整个代码库中创建了大量的自定义视图和可重用组件。但为了使这些组件真正可重用,他们不得不为其加载大量功能以使其适用于所有场景。这不仅涉及大量额外的代码,而且意味着如果一个自定义视图出现故障,它将在应用的多个地方发生故障。

迁移到 Flutter 后,团队选择使用 widget,使每个 widget 和组件保持独立。这使得多个开发人员能够同时处理应用的不同部分,而不会互相干扰。它还将组件的功能限制在必需的功能范围内,并减少了他们需要编写的代码量。

Flutter 是一个一流的开发环境。即使您是原生开发者,上手也相对很快,该软件真正使我们的团队能够现代化我们的应用并创造更无缝的用户体验。

-Mike Baxter,Kijiji 首席技术官

结果

迁移到 Flutter 为 Kijiji 节省了大量的开发时间,使他们能够快速为加拿大人提供改进的应用体验。最初的 Kijiji 原生应用每个平台的构建大约需要 2-3 年,总共约 6 年的开发时间。Flutter 使他们能够在短短 9 个月内重现 Kijiji 移动应用的核心功能。虽然发布主要功能平均需要 2-4 个 sprint,但 Flutter 使他们能够将新功能的发布时间缩短一半,从而使团队能够更快地进行创新、迭代并更快地将新功能推向市场,满足客户的需求。

团队还能够通过在竞争中脱颖而出更快地招聘到有才华的开发人员。他们最初的移动团队由 4 名 iOS 和 4 名 Android 开发人员组成,历时 2 年招聘完成,但他们能够在 6 个月内招聘到 12 名经验丰富的 Flutter 开发人员。

最后,Kijiji 团队能够大幅减少他们依赖的库和依赖项数量,从而获得更简化的体验。他们能够将其原生 Android 应用的代码库从超过 250 万行代码减少到大约 90 万行,并实现了 100% 的代码覆盖率,从而使其更容易维护并避免未来的技术债务。在最终功能验证后,Kijiji 团队于 2023 年 3 月 7 日向用户推出了新的 Flutter 应用。