Flutter 3.41 更新要点速评:主打优化,避坑AGP 9
大家好,我是老刘 2月12日,Flutter 3.41.0 发布,之后又发布两个修复bug的小版本。 这应该是过年前后最后一个大版本,后续大概率会有3.41.x小版本迭代。 总的来说这不是一个重大更新的版本,主打的是各个环节的优化。 接下来老刘摘出来Flutter 3.41中几个我认为值得关注的点。 如果希望了解更多详情,建议查看Flutter官方发布日志: https://docs.flutter.dev/release/release-notes/release-notes-... 持续推进将 Material 和 Cupertino 库迁移为独立包。 UI 组件与基础设施分离早该如此了。 这样也就解决了我们开发的时候想用新的组件又不想升级Flutter 版本的问题。 因为升级Flutter版本总是会对当前的稳定性造成一定的影响,但是升级组件库相对来说风险更可控。 在 pubspec.yaml 中可以指定资源适用的平台,从而优化包体积(例如在移动端构建中排除桌面端的大型资源)。 这个对纯手机端可能影响有限,但是对于横跨手机和桌面端的应用来说,这是一个非常好的优化。 但是老刘这里还是要提醒一下,同时横跨手机和桌面端看起来很美。 实际工程中要小心评估你的应用场景,很多时候手机和桌面端的业务逻辑是不完全一样的。 嵌入原生应用的 Flutter 视图现在支持根据内容 自动调整大小 (不再需要固定尺寸)。 这又是一个看起来很美好的功能。 实际工程中还是尽量避免组件级别的混合页面。 这样对页面复杂度和架构复杂度都是不小的考研,很容易在代码中留下隐患,给未来埋坑。 实际的混合开发中还是更推荐按照页面为单位进行Flutter或者原生的划分。 强调一下混合开发仍然是比较推荐的老代码迁移方案。 因为Flutter的跨平台能力,我们可以在不改变业务逻辑的情况下,快速迁移到Flutter。 这也是Flutter被广泛应用的一个重要原因。 简单来说就是还在努力推进,逐步补全桌面端的拼图。 有一个Breaking Change dart2wasm 不再支持 dart:js_util,必须迁移到 dart:js_interop ,否则会报错。 虽然 AGP (Android Gradle Plugin) 9.0 带来了构建性能的提升,但老刘强烈建议大家暂时不要升级。 目前 Flutter 官方明确表示 AGP 9 会导致大量现有插件不可用。 因为 AGP 9 移除了很多废弃的 API(比如 Transform API)。 建议等官方的迁移脚本和第三方插件生态都跟上之后,我们再从容升级。 Flutter引入Swift Package Manager (SPM)支持是为了最终摆脱 CocoaPods 和 Ruby 环境的依赖,这是 iOS 开发的正确方向。 对于老项目迁移,一定要慎之又慎。 目前 SPM 的支持还处于"混合模式"阶段,很多老插件并没有适配 SPM (缺少 Package.swift),这会导致项目同时依赖 CocoaPods 和 SPM,极易产生依赖冲突和 Xcode 配置混乱。 Flutter 3.41 是一个承上启下的版本,为 2026 年的稳定迭代打好了地基。 说实话老刘认为开年第一个版本不要更新太重大的功能,为2026提供一个稳定的基础版本是比较好的。 但是我们仍然是建议等2个月以上,一切稳定后再考虑升级。 🤝 如果看到这里的同学对客户端开发或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。 🎁 点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。一、 核心要点解析
1. Flutter sdk 与 UI库解耦
2. 平台特定资源 (Platform-specific assets)
flutter:
assets:
- path: assets/logo.png
- path: assets/web_worker.js
platforms: [web]
- path: assets/desktop_icon.png
platforms: [windows, linux, macos]3. Add-to-App 增强

4. 桌面端 (Desktop)
5. Dart 升级到 3.11.0
二、 避坑指南
1. AGP 9:暂时别升级

2. SwiftPM:老项目需谨慎
三、 总结
📂 老刘也把自己历史文章整理在GitHub仓库里,方便大家查阅。
🔗 https://github.com/lzt-code/blog