大家好,我是老刘
今天是2025年的最后一天。
是时候拿出年初 Google 画的那张大饼,摊在桌上好好验验货了。
2025 年对于 Flutter 而言是至关重要的一年。回顾年初发布的路线图,Google Flutter 团队将重点放在了渲染引擎的全面升级(Impeller) 、Web 平台的性能质变(Wasm)以及原生生态的深度融合上。
截至 2025 年底,我们通过梳理官方发布日志与社区动态,对这份路线图的完成情况进行了逐一核验。
请大家来判断年初画的饼Google兑现了没有?
1. 核心渲染:Impeller 引擎全面默认
Impeller 旨在彻底解决 Skia 时代的着色器编译卡顿(Jank)问题,提供可预测的极致性能。
- 路线图目标 :
- iOS:彻底迁移至 Impeller,移除 Skia 后端。
- Android:在 Android 10 (API 29+) 及以上设备默认启用。
- 2025 完成情况 :✅ 已达成
- iOS:Impeller 已成为 iOS 平台的默认且唯一渲染引擎(自 Flutter 3.10 起默认,后续版本彻底移除 Skia 回退选项)。
- Android :自 Flutter 3.27 版本起,Impeller 正式成为 Android API 29+ 设备的默认渲染引擎。对于不支持 Vulkan 的老旧设备,Flutter 依然保留了 Skia 作为兼容方案,确保了覆盖率与性能的平衡。
2. Web 平台:Wasm 稳定与热重载
Web 一直是 Flutter 跨平台愿景中极具挑战的一环。
- 路线图目标 :
- 利用 WebAssembly (Wasm) 提升性能。
- 移除旧版 HTML & JS 库。
- 支持 Web 热重载(Hot Reload)。
- 2025 完成情况 :✅ 已达成
- WasmGC 稳定支持 :Flutter Web 的 Wasm 编译模式已在 Flutter 3.22 中进入 Stable 阶段。配合支持 WasmGC 的现代浏览器(Chrome, Firefox 等),性能提升显著(最高达 3 倍)。
- 热重载 (Hot Reload) :这是 Web 开发者期待已久的功能。在 Flutter 3.32 及后续版本(如 3.35)中,Web 热重载功能正式脱离实验状态,极大提升了 Web 应用的开发效率,不再需要频繁的全量刷新(Hot Restart)。
- 移除 Legacy HTML :Dart 3.7 及 Flutter 3.29 均发出了明确的弃用信号,
dart:html等旧库已被标记为 Deprecated,为 Wasm 原生化铺平了道路。
3. 移动端生态与原生融合
Flutter 在 2025 年致力于让自己更像一个"原生"框架,而非外来者。
- 路线图目标 :
- iOS:支持 Swift Package Manager (SwiftPM) 并设为默认。
- Android:支持 Android 16,迁移 Gradle 至 Kotlin DSL。
- 互操作性:直接调用原生代码(Objective-C/Swift, Java/Kotlin)。
- 2025 完成情况 :🔄 大部分达成/进行中
- iOS SwiftPM :自 Flutter 3.24 起,Flutter 正式支持 Swift Package Manager 管理原生依赖,逐步替代 CocoaPods。虽然目前仍处于过渡期(支持 Opt-in),但已成为推荐方案,未来将完全取代 CocoaPods。
- Android 现代化 :
- Android 16:已完全适配(API Level 36),支持 Edge-to-Edge 强制特性。
- Kotlin DSL :自 Flutter 3.29 起,新创建的 Flutter 项目默认使用 Kotlin DSL (
.gradle.kts) 编写构建脚本,告别了 Groovy,与 Android 原生开发标准完全对齐。
- Native Interop :通过
FFIgen(C/ObjC/Swift) 和JNIgen(Java/Kotlin),Flutter 的原生互操作性达到了新高度。Flutter 3.38 推出了新的package_ffi模板,使得直接调用原生 API 变得更加标准化和高效,减少了对 MethodChannel 的依赖。
4. 桌面端:Canonical 持续深耕
虽然 Google 团队的重心在移动和 Web,但 Canonical作为核心合作伙伴,在 2025 年扛起了桌面端的大旗。
- 路线图目标 :
- 多窗口支持改进。
- 无障碍功能、键盘输入与文本输入体验优化。
- 2025 完成情况 :🔄 稳步推进
- 多窗口支持 :这是桌面端最受关注的功能。2025 年虽然官方尚未完全内置"开箱即用"的多窗口 API,但通过 Canonical 推动的底层引擎改进以及社区插件(如
window_manager_plus和desktop_multi_window),开发者已经能够构建多窗口应用。 - 企业级落地 :Canonical 用实际行动证明了 Flutter 桌面端的成熟度------Ubuntu 25.10 的全新系统安装器 和应用中心均完全由 Flutter 构建,运行流畅且原生感十足。
- 基础体验:在键盘焦点控制、IME 输入法支持以及屏幕阅读器适配上,桌面端在 2025 年修复了大量长期存在的 Issue,使得体验不再有"割裂感"。
- 多窗口支持 :这是桌面端最受关注的功能。2025 年虽然官方尚未完全内置"开箱即用"的多窗口 API,但通过 Canonical 推动的底层引擎改进以及社区插件(如
5. Dart 语言:效率至上与路线调整
Dart 语言在 2025 年经历了一次重要的战略调整,同时带来了一系列极具幸福感的新特性。
- 路线图目标 :
- 宏编程(Macros)停止开发。
- 持续提升开发者效率(语言特性)。
- 2025 完成情况 :⚠️ 路线调整 / ✅ 效率提升
- Macros (宏) 停止开发 :这是一个重大的路线修正。在 2025 年初(Dart 3.7 发布前后),Dart 团队宣布由于技术复杂度过高且难以在短期内达到预期质量,正式停止 了实验性 Macros 功能的开发。团队转而通过改进
build_runner性能和探索augmentations(增强)机制来解决代码生成痛点。 - Dot Shorthands (点号简写) :在 Dart 3.10 中,备受期待的"点号简写"终于落地。开发者现在可以写
color: .red而非color: Colors.red,或者alignment: .center而非alignment: Alignment.center。这一改动极大减少了 UI 代码的冗余,深受社区喜爱。 - Wildcard Variables (通配符变量) :Dart 3.7 引入了
_作为真正的通配符,用于显式忽略未使用的变量,使代码意图更加清晰。
- Macros (宏) 停止开发 :这是一个重大的路线修正。在 2025 年初(Dart 3.7 发布前后),Dart 团队宣布由于技术复杂度过高且难以在短期内达到预期质量,正式停止 了实验性 Macros 功能的开发。团队转而通过改进
6. 总结
2025 年是 Flutter 走向成熟 的一年。如果说以前的 Flutter 还在为"跨平台是否卡顿"而争论,那么 2025 年的 Flutter 已经通过 Impeller 和 Wasm 交出了完美的答卷。
| 功能模块 | 目标 | 状态 | 关键版本 |
|---|---|---|---|
| Rendering | Impeller (iOS) | ✅ 完成 | v3.10+ |
| Rendering | Impeller (Android) | ✅ 完成 | v3.27 |
| Web | WasmGC 支持 | ✅ 完成 | v3.22 |
| Web | Hot Reload | ✅ 完成 | v3.32/3.35 |
| Build | Gradle Kotlin DSL | ✅ 完成 | v3.29 |
| Build | SwiftPM 支持 | 🔄 推进中 | v3.24+ |
| Dart | 效率提升 | ✅ 完成 | 持续更新 |
| Dart | Macros (宏) | ❌ 取消 | v3.7 (宣布停止) |
| Desktop | 多窗口支持 | 🔄 推进中 | 持续更新 |
Flutter 团队在 2025 年不仅兑现了性能承诺,更在开发体验(Kotlin DSL, SwiftPM, Dot Shorthands)上做出了巨大的改进,虽然 Macros 的取消令人遗憾,但务实的路线调整也避免了生态的碎片化。
如果看到这里的同学对客户端或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。
私信免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
------ laoliu_dev