Flutter开发者 3.29版本关注要点

哈喽,我是老刘

Flutter 3.29已经发布有一段时间了,老刘写Flutter代码已经6年多,对这种例行的Flutter版本更新基本上已经是内心毫无波澜。

不过最近有不少朋友问要不要更新到最新版,这里罗列一下从开发者角度看比较重要的更新,大家自己判断。

一、架构与性能优化

  1. Dart 代码执行线程调整
    Dart 代码现直接在 Android/iOS 的主线程运行,减少了线程切换开销,但需注意可能加剧平台 UI 线程的负载,需通过性能分析工具监控卡顿问题。
  2. 渲染引擎变更
    • iOS 平台完全移除了 Skia 渲染引擎,可能影响依赖 Skia 特性的应用;
    • 无 Vulkan 驱动的 Android 设备改用 OpenGLES 的 Impeller 引擎,提升低端设备兼容性。

二、组件库增强

组件库的更新是例行的,基本每个发布版本都会有。

但是通常老刘不建议使用最新的Flutter版本,所以这部分就略过了,感兴趣的同学可以去看官方的发布文档。

不建议紧跟最新版主要有两个原因:

1、依赖的三方库可能还没有支持。

2、稳定性还没有经过大规模验证,之前也出现过新的发布版本引入一些很难规避的问题。

三、重大变更与弃用

  1. 构建工具链调整
    • 移除 Flutter Gradle 插件(3.19 后已弃用),旧项目需迁移至 Kotlin 实现的 AGP 公共 API;
    • Web 平台正式移除 HTML Renderer,强制使用 CanvasKit 或 WebAssembly。
    这一点要说一下,Flutter的web和标准的web开发已经完全不是一件事情了。考虑用Flutter做web端的同学要重点关注这一条。
  2. 官方 Package 停止维护
    包括 flutter_markdownpalette_generator 等 6 个包将于 2025 年 4 月 30 日后停止支持,需寻找社区分叉或替代方案。

四、开发工具与调试

调试工具增强也属于是例行更新,大家可以每过几个大版本后系统了解一下最新的调试工具。

五、其他重要更新

多窗口支持推进 :PC 端多窗口功能进入 PR 审查阶段,预计年内落地。开发者苦多窗口功能久已啊。

主题规范调整 :弃用 ThemeData.dialogBackgroundColor,迁移至 DialogThemeData.backgroundColor,可通过 dart fix 自动修复。

六、升级建议

该版本涉及较多底层变更(如线程模型、渲染引擎),可能对现有项目产生兼容性影响。建议:

  1. 优先测试 UI 线程性能及渲染表现;
    这一点可能比较重要,项目升级后一定要增加针对性的测试,特别是针对多种不同机型的覆盖。
  2. 检查 Gradle 插件和 Web 渲染器迁移需求;
  3. 使用 dart fix 处理弃用 API。
    dart fix 这个工具还是建议大家利用起来,能很好的提升升级的效率,IDE会有自动化提示,很方便。

如需完整更新日志,可参考官方文档迁移指南

总结

总的来说对开发者影响最大的可能是Dart 代码现直接在 Android/iOS 的主线程运行。开发者如果升级一定要做好测试覆盖。

其它的功能更多是例行的优化与升级。

从最近几个版本的升级来看,Flutter这个项目已经进入相对稳定的阶段。

比较少出现重量级功能的变化,更多的以bug修复和功能优化为主。

这对开发者来说是非常好的事情。

而对于观望者来说,通过每个发布版本的更新情况,大致能估算团队的投入程度。

基于这些数据去判断比可以减少很多不必要的担心与忧虑。

如果看到这里的同学对客户端开发或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。

点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。

可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》

相关推荐
星秋Eliot7 小时前
Flutter多线程
flutter·async/await·isolate·flutter 多线程
农夫三拳_有点甜10 小时前
Flutter Assets & Media
flutter
林间风雨20 小时前
flutter项目 -- 换logo、名称 、签名、打包
flutter
SoaringHeart1 天前
Flutter组件封装:页面点击事件拦截
前端·flutter
tangweiguo030519871 天前
Flutter与原生混合开发:实现完美的暗夜模式同步方案
android·flutter
程序员老刘2 天前
CTO紧急叫停AI编程!不是技术倒退,而是...
flutter·ai编程
leazer2 天前
Flutter TabBar 字体缩放动画抖动问题及优化方案
flutter
yuanpan2 天前
认识跨平台UI框架Flutter和MAUI区别,如何选。
flutter·ui·maui
无知的前端2 天前
一文精通-Flutter 状态管理
flutter
阿笑带你学前端2 天前
Drift数据库开发实战:类型安全的SQLite解决方案
前端·flutter