每一轮 Flutter 版本更新,几乎都会上演同一出戏:Flutter 与 React Native 的拥趸隔空对线,Dart 与 TypeScript 的优劣被反复咀嚼,而 Google 内部对 Flutter 究竟有多坚定,再次成为悬念。Flutter 3.47 这次升级本身没有颠覆性变化,值得看的是它发布前后的舆论场。社区正在用脚投票,把跨端开发的未来拽向多条岔路。
一场老调重弹,却仍未结束的争论
Hacker News 上延续的是 2018 年以来那场经典争论。Flutter 支持者强调 Dart 的类型安全与 UI 取向,渲染引擎一致带来的跨平台体验,以及 iOS 滚动问题在新版本里的修复;React Native 支持者反驳说,TypeScript 的人才池更大,靠近原生概念便于日后迁移,React 生态的红利也实在诱人。两边都有道理,也都有回避不了的软肋:Web 端首屏体积过大、Windows/Linux 上 WebView 行为不一致、原生代码终究绕不开……
这些缺点不是 Flutter 3.47 才冒出来的,但它们反复被提起,是因为它们真的影响开发者的真实选型。有网友说 “糟糕的架构是团队问题,不是框架问题”。话是没错,却解决不了眼下的困境:当框架的默认范式本身就别扭,社区再努力也只能在别扭之上搭脚手架。
Google 内部的分裂值得留意。Android 团队明显更钟爱 KMM 与 Compose,这与 Flutter 在 Google 内部 “被重视却非唯一” 的定位一脉相承。3.47 的发布没有解开这道难题,只是再次提醒外界:Flutter 不是 Android 的未来,它只是 Google 跨端战略的一个候选答案。
当 “另一种 Flutter” 开始出现
比起版本号迭代,更值得警惕的是社区对 Flutter 路线的离心力。DartNative 把这种离心写得很直白,它几乎照搬了 Flutter 的开发体验,却把底层渲染从 Skia/Impeller 换成原生 UIKit 与 Android Views,号称 “No bridge、0 abstraction layers”。这种 “Flutter 的皮,原生的骨” 的设计,正好戳中 Flutter 的几个痛点:键盘联动慢几帧、长列表掉帧、多媒体缓存粗糙。
DartNative 当下的生态近乎荒漠,34 个官方插件,连支付和地图都要算作 “常见功能” 才会被覆盖,迁移成本高到劝退绝大多数项目。但它出现这件事本身说明,Flutter 的渲染抽象已经让一部分人不满足。他们不是要抛弃 Dart,也不是要抛弃声明式 UI,而是想要一种 “既保留 Flutter 心智模型,又能跑在原生视图之上” 的中间形态。
同期出现的 Flocker(基于 WebGPU 纹理),有稀土掘金的文章评价为 “可能更具前景”。这句话点到了跨端框架下一个十年的战场:渲染底座。Skia 是过去十年跨端 UI 的事实标准,但当 WebGPU、Metal、Core Animation 这些更贴近硬件的接口逐渐成熟,社区开始质疑 “自研引擎” 是否还是性能与一致性的最优解。
脚手架繁荣的另一面
在争论与分裂的另一端,是国内社区对 Flutter 的另一种态度:先把工程化做厚,再谈路线问题。FlutterKit 这种 “开箱即用的通用脚手架” 在 2026 年集中涌现,并非偶然。它的九大亮点——网络、分页、数据库、状态管理、模块化架构、六端原生工程、深色模式、国际化、AI 辅助 Skill——几乎覆盖了一个中型 App 所需的全部样板。
这种项目反映了一种很务实的中国式共识:框架的优劣可以吵,但落到业务上,真正决定交付质量的是脚手架与团队约定。FlutterKit 把 View+Logic+State+Binding 的分层、Dio+Retrofit 的网络栈、sqflite 的数据层全部封装好,把六端原生工程、响应式断点、键盘避让这些细节提前踩平,开发者拿过来就能写业务。这种工程化思路,本质上是把 “框架的不可控” 转换成 “脚手架的可控”。
但脚手架再厚,也盖不住几个底层问题。GetX 的状态管理在团队规模变大后争议颇多,社区建议替换为 signals 这种更现代的方案,作者也承认正在调研;键盘调起时的全局重绘卡顿,至今没有明确解法;崩溃监控与 U-APM 这类 “生产级” 能力仍然依赖 bootstrap 里临时插桩。换句话说,脚手架能让你跑得更快,却没法替你回答 “这个框架是否值得长期投入”。
跨端框架的战国时代
把这三件事放在一起看,2026 年的跨端开发版图其实已经分裂成四条路线: 这三件事放在一起看,2026 年的跨端开发版图已经分裂成四条路线:
- Flutter 官方路线:持续优化 Impeller、收紧引擎、靠 Dart 3.x 提升语言吸引力,试图用工程深度留住开发者;
- React Native 路线:依托 React 生态与 TypeScript 人才优势,靠 New Architecture 与 Fabric/TurboModules 缩小与原生的性能差距;
- 原生分离渲染路线:以 DartNative 为代表,保留 Dart/Flutter 心智模型但替换渲染底座,主打极致性能;
- 平台原生跨端路线:以 Google 内部力推的 KMM/Compose 为代表,本质上是 “承认跨端是过渡,最终回到原生”。
这四条路线之间的缝隙,正在快速扩大。过去十年,跨端框架的故事是 “一个框架统一六端”;未来十年,更可能是 “开发体验趋同,渲染底座分化”。Flutter 3.47 发布本身也许只是例行公事,但它发布在一个生态开始四分五裂的节点上,本身就是一种信号。
开发者的难题
对于真要 2026 年选型的团队,比 “Flutter 还是 React Native” 更现实的问题是:你愿意为这个框架的路线赌多少年?
选 Flutter,意味着接受 Dart 这门相对小众的语言、自研引擎带来的 Web/桌面端妥协,以及 Google 内部战略摇摆的潜在风险;同时能拿到高度一致的跨端 UI、成熟的工程化脚手架(如 FlutterKit)和日益活跃的中文社区。
选 React Native,意味着用上最大的人才池和 React 生态,但要承担原生模块维护成本、跨端一致性问题,以及架构决策对团队水平的高度依赖。
押注 DartNative 这样的新兴框架,更像赌博:你赌的是 “Flutter 式的开发体验 + 原生渲染” 会成为下一代跨端标准,代价是几乎为零的生态。
无论选哪条路,跨端框架 “一招鲜” 的时代都结束了。未来几年,开发者面对的不再是 “一个框架 vs 另一个框架” 的单选题,而是一组要在性能、一致性、人才、生态、长期风险之间反复权衡的决策。Flutter 3.47 的发布算不上一座技术里程碑,更像是这条岔路口的一次提醒:跨端开发的战国时代早已开始。
