头图

哈喽,我是老刘
Flutter 又双叒升级了,这次是3.32版本。
老刘从Flutter 1.0的时代开始就带着团队开始用Flutter开发。
那时候每次版本升级变化都挺大的,升级适配的工作量也不小。
最近这两年随着Flutter的逐步稳定,每次升级对于老项目的影响都不是太大了。
接下来我们来盘点一下这次升级的要点。

一、更新要点

1、组件更新

新控件(如 Expansible、RawMenuAnchor)是增量改进,对现有项目影响有限。

2、DevTools 升级

DevTools 功能和性能优化确实属于工具链的常规迭代,对调试效率有提升但非必需。
这次有一个属性编辑器值得单独说一下。
就是有点类似于以前Android页面xml开发,我们可以有一个编辑组件各个属性的面板。
当然在正常写代码的时候可能不一定会用到,但是在后期对属性进行微调的时候用起来还是比较方便的。

3、桌面端多窗口推进

多窗口是一个系统性问题,原先的Flutter设计对这方面考虑是不够充分的,这就导致直接多窗口运行会出现很多问题。
Canonical主导修复了不少这方面的问题,但是目前还没有彻底完成多窗口的功能。

另外桌面端新增 UI 线程合并功能,优化 Dart FFI 与原生代码的交互能力。
这也是多窗口的前置条件之一,不过即使没有多窗口这个功能对于使用FFI的开发者来说也比较有用。

总的来说在多窗口方面有专人负责,在稳步推进中。

4、Impeller 渲染引擎优化

​​Android 适配调整​​
API ≤28 的设备回退使用 Skia,API 29+ 默认启用 Impeller。针对三星 XClipse 等特定 GPU 设备改用 OpenGLES 渲染。
​​渲染质量提升​​
文本动画流畅度提升 30%,修复字形渲染精度问题;圆锥曲线细分算法优化,内存分配减少 20%。

Impeller的持续优化是短期的重点。希望Impeller能尽快进入稳定期。

二、是否升级建议

1、推荐升级场景:

​​Impeller 问题修复需求​​
若遇到文字、动画的渲染问题且当前版本 ≤3.27,升级后渲染情况会有优化。
​​跨平台特性需求​​
需要 iOS 原生粘贴确认框(仅基础文本字段)或 Android 14+ 触控笔输入支持。
桌面端需求
依赖 线程合并优化(Dart FFI 与原生交互)场景。

2、可暂缓升级场景:

​​稳定版本用户​​
若当前版本(如 3.29+)运行稳定且无需新特性,可等待后续大版本升级。
​​非核心功能需求​​
项目不涉及 Web 热重载(需 --web-experimental-hot-reload)或高对比度模式优化等边缘功能。
​​系统版本未受限​​
无迫切需求适配 iOS 13/macOS 10.15 最低版本要求(下一版本将强制要求)。

三、潜在风险提示

1、弃用 API 迁移

这个是老生常谈了,基本每个版本都有弃用的api,但是大多数项目可能不会碰到。
碰到了按照官方文档进行替换即可。

2、包依赖风险

官方停止维护 flutter_markdown、ios_platform_images 等 6 个包,建议迁移至 markdown_widget 等社区替代方案。

3、未来版本适配

下一版本将强制要求 iOS 13/macOS 10.15+,建议在 3.32 版本中提前测试环境兼容性,避免后续升级受阻。

总结

总体来说Flutter已经进入到功能层面的稳定阶段。
目前主要哦的修改在Impeller引擎和桌面端。
这对大多数开发者来说是好事,一方面功能对稳定会大幅降低每次升级的适配成本。
另一方面持续推进的渲染引擎和桌面端可以侧面看出官方对这个项目的支持成都。
站在现在这个时间节点,在客户端跨平台方面从性能、开发效率、社区支持等维度综合来看目前尚未出现比Flutter更优的选择。
老刘始终认为随着AI的持续进步,类似Flutter这样通过独立渲染引擎屏蔽平台差异性的开发框架,是最适合和AI结合的选择。

好了,如果看到这里的同学对客户端开发或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》


程序员老刘
1 声望3 粉丝

客户端架构师,客户端团队负责人。一个月带领客户端团队从0基础迁移到Flutter 。目前团队已使用Flutter五年。