哈喽,我是老刘
Flutter 3.29已经发布有一段时间了,老刘写Flutter代码已经6年多,对这种例行的Flutter版本更新基本上已经是内心毫无波澜。
不过最近有不少朋友问要不要更新到最新版,这里罗列一下从开发者角度看比较重要的更新,大家自己判断。
一、架构与性能优化
- Dart 代码执行线程调整
Dart 代码现直接在 Android/iOS 的主线程运行,减少了线程切换开销,但需注意可能加剧平台 UI 线程的负载,需通过性能分析工具监控卡顿问题。 - 渲染引擎变更
• iOS 平台完全移除了 Skia 渲染引擎,可能影响依赖 Skia 特性的应用;
• 无 Vulkan 驱动的 Android 设备改用 OpenGLES 的 Impeller 引擎,提升低端设备兼容性。
二、组件库增强
组件库的更新是例行的,基本每个发布版本都会有。
但是通常老刘不建议使用最新的Flutter版本,所以这部分就略过了,感兴趣的同学可以去看官方的发布文档。
不建议紧跟最新版主要有两个原因:
1、依赖的三方库可能还没有支持。
2、稳定性还没有经过大规模验证,之前也出现过新的发布版本引入一些很难规避的问题。
三、重大变更与弃用
- 构建工具链调整
• 移除 Flutter Gradle 插件(3.19 后已弃用),旧项目需迁移至 Kotlin 实现的 AGP 公共 API;
• Web 平台正式移除 HTML Renderer,强制使用 CanvasKit 或 WebAssembly。
这一点要说一下,Flutter的web和标准的web开发已经完全不是一件事情了。考虑用Flutter做web端的同学要重点关注这一条。 - 官方 Package 停止维护
包括flutter_markdown
、palette_generator
等 6 个包将于 2025 年 4 月 30 日后停止支持,需寻找社区分叉或替代方案。
四、开发工具与调试
调试工具增强也属于是例行更新,大家可以每过几个大版本后系统了解一下最新的调试工具。
五、其他重要更新
• 多窗口支持推进:PC 端多窗口功能进入 PR 审查阶段,预计年内落地。开发者苦多窗口功能久已啊。
• 主题规范调整:弃用 ThemeData.dialogBackgroundColor
,迁移至 DialogThemeData.backgroundColor
,可通过 dart fix
自动修复。
六、升级建议
该版本涉及较多底层变更(如线程模型、渲染引擎),可能对现有项目产生兼容性影响。建议:
- 优先测试 UI 线程性能及渲染表现;
这一点可能比较重要,项目升级后一定要增加针对性的测试,特别是针对多种不同机型的覆盖。 - 检查 Gradle 插件和 Web 渲染器迁移需求;
- 使用
dart fix
处理弃用 API。
dart fix
这个工具还是建议大家利用起来,能很好的提升升级的效率,IDE会有自动化提示,很方便。
如需完整更新日志,可参考官方文档或迁移指南。
总结
总的来说对开发者影响最大的可能是Dart 代码现直接在 Android/iOS 的主线程运行。开发者如果升级一定要做好测试覆盖。
其它的功能更多是例行的优化与升级。
从最近几个版本的升级来看,Flutter这个项目已经进入相对稳定的阶段。
比较少出现重量级功能的变化,更多的以bug修复和功能优化为主。
这对开发者来说是非常好的事情。
而对于观望者来说,通过每个发布版本的更新情况,大致能估算团队的投入程度。
基于这些数据去判断比可以减少很多不必要的担心与忧虑。
如果看到这里的同学对客户端开发或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》