贝壳找房携手 Flutter,为三亿家庭提供更好的居住服务 | Flutter 开发者故事

贝壳找房是科技驱动的新居住服务平台,致力于在二手房、新房、租房以及装修等居住领域为三亿家庭提供全方位的品质居住服务。如此庞大的用户群体,自然也有着十分多样和复杂的使用场景和需求。以往使用原生开发模式时没有碰到过的问题,也在业务迅速增长后逐渐暴露出来。

在引入 Flutter 技术之前,贝壳移动端主要采用原生代码进行开发,但业务的快速增长让我们一度人手十分紧缺。正好 Flutter 是一项跨平台技术,具有极高的代码复用性,也能方便地直接添加到既有的原生应用中,这种灵活性也是我们最终采用它的重要原因。

—— 张华峰,贝壳移动端架构负责人

目前贝壳大部分 App 均是在原生应用上添加 Flutter 进行开发的,混合开发占比高达 80% 以上

在解决了跨平台和代码复用性问题之后,问题自然回到了用户体验上: Flutter 能做到媲美原生应用的流畅度吗?团队给出的答案是肯定的。

(应用的) 看点直播等核心模块均使用 Flutter 来实现,动画酷炫,体验流畅。制作的页面运行效率也很高,App 核心页面启动时间完全可以媲美原生页面。

—— 赵佳航,贝壳开发工程师

△ 贝壳应用启动快速,体验流畅

△ 贝壳应用启动快速,体验流畅

Flutter 除了做到让应用本身运行流畅以外,还能让开发者们的工作效率大幅提升。这里举两个例子:

首先是广受好评的热重载功能,对于习惯了编译-部署-测试-修改循环的开发者来说,这个速度的提升甚至有点夸张。

原来改动一次界面然后重新编译,短则几十秒,长则数分钟,现在只要 1 秒钟就能看到效果,可以说是做到了百倍的效率提升。

—— 邵冬,贝壳资深工程师

△ 1 秒就能看到迭代效果的热重载

△ 1 秒就能看到迭代效果的热重载

然后是活跃的开发社区,很多开发中碰到的问题其实已经有其他开发者给出了解决方案,这自然让开发者们得以避免重复劳动。贝壳开发团队自己就用 Flutter 开发了制作海报的功能,其中用到了 15 款来自社区的 package。当然,团队也有积极提交 PR 为社区提供反馈,贡献自己做为社区一员的能量。

△ 用 Flutter 制作海报

△ 用 Flutter 制作海报

Flutter 跨平台、高效的特性很快也吸引到了贝壳旗下其他应用的开发者们。比如团队的另一个 App “被窝家装” 就使用 Flutter 实现了按户型找设计、新家播报等核心功能,完美实现了 “以标准精工实现个性设计” 的家装服务体验。

写一套代码即可多端使用,效率提升了一倍,我们只用一个月就完成了 App 1.0 版的需求开发。

—— 王兆昭,被窝家装资深产品经理

△ 被窝家装的按户型找设计和新家播报等核心功能使用 Flutter 实现

△ 被窝家装的按户型找设计和新家播报等核心功能使用 Flutter 实现

目前贝壳已经有十几款 App 在使用 Flutter 技术,更是已经搭建起了完善的 Flutter 基础设施,包括 Flutter 环境自动化配置工具、共享引擎容器、UI 自动化测试、基于 Flutter Web 的容灾降级方案以及线上的异常监控和性能监控等系统,整体对 Flutter 技术的使用已经比较体系化了。

△ 线上异常监控和性能监控系统

△ 线上异常监控和性能监控系统

我们的百余名工程师已经成为 Flutter 的粉丝,在团队里热情地推广 Flutter 技术,这也让我们在面对更快更复杂的设计和需求时更有底气,为用户开发出更好的应用。

—— 赵亚宇,贝壳资深工程师

在面对多样、复杂且高速变化的需求时,贝壳的开发团队已经找到了解决方案 —— Flutter。您是否已经准备好用 Flutter 去打造跨平台的优秀应用了呢?欢迎在评论区和我们分享。