为啥还有一些公司使用 Flutter 技术,老技术现在还有用吗?

207 阅读8分钟

Flutter 并非“老技术”,它自2017年推出以来一直在持续更新,目前仍是跨平台开发领域的重要选择。一些公司坚持使用 Flutter,核心原因在于其技术特性与业务需求的匹配,而“老技术”是否有用,关键也在于是否能解决实际问题。

公司使用 Flutter 的核心原因

•	跨平台效率高:一套代码可同时运行在 iOS、Android,甚至桌面端(Windows/macOS)和 Web 端,能大幅减少开发和维护成本,对需要快速覆盖多平台的公司很有吸引力。

•	性能接近原生:相比早期的 Hybrid 框架(如 Cordova),Flutter 直接编译为原生代码,渲染性能更优,适合对界面流畅度有要求的应用(如电商、工具类APP)。

•	生态与稳定性:经过多年迭代,Flutter 的插件生态(如支付、地图、推送等)已较完善,且版本趋于稳定,成熟项目迁移成本高,继续使用更划算。

•	团队熟悉度:如果团队已积累大量 Flutter 经验,切换技术栈(如转向 Kotlin/Swift 原生开发)会导致人力成本上升,维持现有技术更高效。

老技术是否还有用?

技术的“新旧”不代表价值,关键看是否能满足需求:

•	许多“老技术”(如 Java、PHP、C++)仍在广泛使用,因为它们成熟、稳定,能支撑核心业务,且迁移成本极高。

•	即使是新兴技术,若无法解决实际问题(如性能不足、生态不完善),也可能被淘汰。

总之,公司选择技术的核心是“性价比”——能否用最低成本实现业务目标。Flutter 至今仍在持续更新(最新稳定版已到3.16+),并非被淘汰的老技术,而真正的“老技术”只要能创造价值,就有其存在的意义。

尽管Flutter在跨平台开发中表现出色,但仍存在一些不足之处,主要集中在技术特性、生态适配和场景限制等方面:

  1. 包体积较大

    • Flutter应用会包含其自带的渲染引擎和核心库,导致安装包体积比纯原生应用更大(通常会增加几MB到十几MB)。

    • 这对存储空间敏感的场景(如低端设备、轻量工具类APP)可能是劣势。

  2. 原生特性适配成本

    • 虽然Flutter提供了丰富的组件,但涉及平台特有功能(如iOS的某些系统级API、Android的深度系统集成)时,仍需通过“原生通道”(Method Channel)桥接原生代码,增加开发复杂度。

    • 部分小众或最新的系统特性(如iOS的新交互、Android的隐私权限更新),Flutter插件可能滞后于原生开发。

  3. Web端和桌面端支持有限

    • 尽管Flutter支持Web和桌面端,但体验不如移动端成熟:

    ◦ Web端在复杂交互(如大量动画、滚动性能)和SEO适配(依赖JavaScript生态)上表现较弱,更适合内部工具而非面向公众的复杂网站。

    ◦ 桌面端(Windows/macOS/Linux)的系统集成度(如菜单、窗口管理)不如原生桌面框架(如Electron、Qt)。

  4. 学习曲线与调试体验

    • 对于熟悉原生开发(Kotlin/Swift)的开发者,Flutter的Dart语言和声明式UI(Widget)需要重新适应。

    • 部分场景下调试难度高于原生,例如复杂动画的性能问题、原生与Flutter交互的 bug,定位原因较繁琐。

  5. 生态依赖与版本兼容性

    • 虽然Flutter生态较完善,但第三方插件质量参差不齐,部分插件可能因维护不及时导致与新版本Flutter不兼容,需要额外适配。

    • 大版本更新(如2.x到3.x)可能引入破坏性变更,老项目升级需投入一定成本。

这些不足并不影响Flutter在移动端跨平台开发中的主流地位,但在选择技术时,需结合具体场景(如设备类型、功能需求、团队技术栈)评估是否适配。

Flutter技术因其高效、跨平台等特性,被众多公司广泛应用,以下是一些典型代表:

•	互联网大厂:谷歌旗下多个应用如Google Ads、Google Assistant、Google Pay等使用了Flutter。腾讯的微信、QQ、QQ邮箱等也采用了该技术。阿里系的闲鱼、淘宝、支付宝(部分功能)、菜鸟等同样是Flutter的使用者。另外,字节跳动的抖音、火山小视频,百度的百度网盘,美团的美团商家版,以及B站、微博、快手等也都在应用中运用了Flutter技术。

•	科技与金融公司:印象笔记(Evernote)在其Android版本应用中使用Flutter,便于以小团队创建高质量应用。支付处理公司Square在其“Square Point of Sale”应用中也采用了Flutter,以减少开发时间。

•	交通与旅游公司:北欧航空公司(SAS)采用Flutter作为其App的技术栈。环球影城通过Flutter实现了应用大小的减小和崩溃率的降低。在线旅行服务平台携程的部分功能也是通过Flutter实现的。

•	其他公司:LG选择Flutter来增强其智能电视操作系统webOS。美国汽车保险公司GEICO使用Flutter提高工作效率。此外,还有MGM Resorts,其基于Flutter的新MGM Rewards应用在短时间内完成重建,代码总量减少一半,交付速度提高4倍。

公司选择 Flutter 作为技术选型,核心是为了平衡开发效率、成本控制和产品体验,具体可从以下几个关键目标来看:

  1. 降低跨平台开发成本

    • 一套代码同时运行在 iOS、Android 等多平台,避免为不同系统单独组建开发团队,减少人力投入。

    • 后续维护只需更新一套代码,降低版本迭代的时间和资源成本,尤其适合中小型团队或需要快速上线的项目。

  2. 提升开发效率与迭代速度

    • 声明式 UI 设计和“热重载”特性(修改代码后实时预览效果),大幅缩短开发和调试周期,支持快速试错和功能迭代。

    • 统一的设计语言和组件库,能保证多平台界面风格一致,减少设计师和开发者的沟通成本。

  3. 兼顾性能与用户体验

    • 相比传统 Hybrid 框架(如 Cordova),Flutter 直接编译为原生代码,渲染性能更接近原生应用,能满足大多数场景的流畅度需求(如电商、社交、工具类 APP)。

    • 避免因不同平台原生开发导致的体验差异,提升用户对产品的一致性感知。

  4. 适配团队技术栈与业务需求

    • 若团队已有 Dart 或前端开发经验,上手 Flutter 成本较低,无需从零学习 Kotlin/Swift 等原生语言。

    • 对于需要快速覆盖多端(移动端、Web 端、甚至桌面端)的业务(如企业内部工具、轻量应用),Flutter 能快速实现多平台布局。

  5. 平衡短期与长期收益

    • 短期可快速上线产品验证市场需求,长期通过统一技术栈减少技术债务,方便后期扩展功能或迁移平台。

总之,公司选 Flutter 本质是“用较低成本实现多平台覆盖,同时保证产品体验不打折扣”,尤其适合对跨平台需求明确、追求开发效率和成本控制的业务场景。

除了前文提到过的公司,还有许多知名公司在使用Flutter技术,以下是部分公司介绍:

•	谷歌:作为Flutter框架的开发者,谷歌广泛将其应用于旗下产品,如Google Ads、Google Assistant、Google Pay等,借助Flutter实现跨平台性能和一致的用户体验。

•	阿里巴巴:阿里巴巴是国内较早积极采用Flutter的大厂,闲鱼是其典型代表,通过Flutter实现了60帧每秒的流畅交互体验。此外,淘宝、支付宝、菜鸟等也在一定程度上使用Flutter进行功能开发。

•	腾讯:腾讯积极运用Flutter技术,NOW直播就是基于Flutter开发的,腾讯还在QQ、QQ音乐、腾讯会议等产品中融入了该技术,同时也为Flutter社区贡献了Flare等开源项目。

•	字节跳动:字节跳动旗下有众多应用使用Flutter,如抖音、今日头条、Lark等,据统计其使用Flutter开发的应用已超过90个,覆盖移动端、web端等多个平台。

•	eBay:eBay通过其子公司的汽车销售平台Motors app采用了Flutter,以优化用户界面并改善用户体验,同时也在其他电子商务和购物相关领域探索Flutter技术。

•	LG:LG选择Flutter来增强其智能电视操作系统webOS,是少有将Flutter作为小众平台开发SDK的企业,凭借Flutter提升了电视系统相关功能的开发效率和用户体验。

•	SAS:作为获得“红点设计奖”等多项奖项的航空公司,SAS采用Flutter作为其App的技术栈,借助Flutter实现了高效的跨平台开发。

•	MGM Resorts:App agency的Superformula使用Flutter为MGM Resorts的400多家餐厅重振了数字用餐体验,基于Flutter的新MGM Rewards应用在4个月内完成重建,代码总量减少一半,交付速度提高4倍。