大家好,我是老刘
8月的跨平台圈堪称大版本月。Flutter放出了3.47大版本,带来了Material和Cupertino解耦独立成包的里程碑式变化,Impeller也正式成为桌面端默认渲染引擎。React Native在0.87中正式把Strict TypeScript API转正,KMP也推进到了2.4.20-RC。MAUI这边的Preview 7带来了Passkey认证和XAML增量热重载等新能力。一起来看看各框架的具体变化。
1. 八月跨平台技术综述
8月跨平台圈的关键词是结构变革 与生态收敛:
① Flutter 3.47大版本,设计系统解耦
Flutter 3.47(8月12日)是这几个月来变化最大的一个版本。Material和Cupertino正式从核心SDK中剥离,以material_ui和cupertino_ui两个独立包发布在pub.dev上。同时Impeller成为macOS、Windows、Linux的默认渲染引擎,Widget Previews转正稳定,加上Wasm默认化推进和Apple生态适配,覆盖了从底层渲染到顶层设计的全链路升级。
② React Native 0.87大版本,TypeScript API转正
8月11日发布的RN 0.87是继0.82"新架构时代"后又一个分水岭版本。Strict TypeScript API从0.80的预览变成默认,Metro更新到0.87(内存减半、源映射快2倍),实验性支持SwiftPM,同时AGP 9支持正式落地。
③ KMP 2.4.20-RC,Swift生态融合更进一步
Kotlin 2.4.20-RC(8月12日)带来了更多Swift互操作增强,包括sealed class映射到Swift枚举、跨语言继承等。同时BTA扩展到JS/Wasm/Metadata目标,原生编译器镜也开始实验性发布。
④ uni-app x Android蒸汽模式上线,微信AI接入
5.23版本中,Android蒸汽模式正式上线,意味着uni-app x在Android/iOS/鸿蒙三端都实现了蒸汽模式覆盖。同时微信小程序平台新增微信AI支持。
⑤ .NET MAUI Preview 7,Passkey认证与增量热重载
.NET 11 Preview 7(8月11日)是MAUI在.NET 11正式发布前的倒数第二个预览版。跨平台Passkey认证、XAML增量热重载、Shell路由模板等功能正式对外展示。
2. Flutter:3.47大版本,Material/Cupertino独立成包,Impeller默认桌面端
Flutter更新日志:docs.flutter.dev/release/rel...
8月12日,Flutter 3.47正式发布。这是自5月Google I/O 2026发布3.44以来最大的一个版本。当前最新稳定版为Flutter 3.47.0,Dart版本同步升级。
2.1 Material与Cupertino独立成包
这是本次版本最大的结构性变化:Material和Cupertino设计系统正式从Flutter核心SDK中剥离 ,以material_ui和cupertino_ui两个独立包发布在pub.dev上,版本号1.0。
这意味着什么?
- 设计系统可以独立于Flutter SDK的季度发布节奏,按周发布修复和新组件
- 社区贡献者可以直接向设计系统包提交PR,不必等待Flutter核心团队
- 为未来Flutter核心widget目录的风格中立奠定基础
迁移方式
运行 dart fix --apply --code=migrate_design_widgets 即可自动迁移。
兼容性桥接
MaterialUiCompatibilityBridge 可以让你的应用在依赖包仍使用旧导入的情况下,立即切换到独立包。
本地化同步解耦
flutter_localizations 也被拆解,本地化代理现在位于 material_ui 和 cupertino_ui 包中。
2.2 Impeller成为桌面端默认渲染引擎
从3.47开始,Impeller是macOS、Windows、Linux的默认渲染引擎。如果用Skia渲染,需要手动回退(回退选项将在未来版本移除)。
桌面端的其他改进:
-
SDF文本渲染
利用桌面端更强的GPU算力,使用Signed Distance Function渲染更锐利的文字和曲线
-
Wide Gamut Color
macOS上默认启用广色域渲染
-
实验性多窗口支持
Linux和Windows支持弹出窗口(popup windows),可查询
windowHandle获取原生窗口指针 -
桌面版Flavors
Windows和Linux现在支持Flutter flavors
2.3 Widget Previews转正稳定
Flutter Widget Preview正式稳定,可以在不构建和启动整个应用的情况下,即时渲染、检查和迭代单个UI组件。
2.4 Apple生态适配
-
UIScene生命周期
Xcode 27强制要求,Flutter CLI自动迁移,但自定义原生代码需手动处理
-
Intel Mac逐步淘汰
Flutter CLI在Intel主机上构建时会打印警告
-
SwiftPM进展
前100个iOS插件中92个已迁移到SwiftPM,未迁移的插件pub.dev评分会降低
-
最低OS版本提升
iOS最低版本从13提升到15,macOS从10.15提升到12
2.5 Wasm默认化推进
Flutter团队正在积极推进Wasm成为Web应用的默认编译目标。--wasm标志已可用,同时新增了实验性的Wasm延迟加载支持(--enable-wasm-deferred-loading)。
2.6 Android依赖矩阵更新
- Java: 17(最低)
- Kotlin Gradle Plugin: 2.4.0
- AGP: 9.1.0
- Gradle: 9.3.1
- compileSdk/targetSdk: API 36
- minSdk: API 24
2.7 老刘点评
3.47是今年最具结构性意义的一个版本。Material/Cupertino解耦这件事,表面看只是包管理的调整,实际上意味着Flutter的设计系统迭代速度将大幅提升:不再受限于SDK的季度发布节奏。再加上Impeller上桌面端、Widget Previews转正、Wasm推进,Flutter正在从"移动优先"转向"全平台+模块化"的架构。迁移需要一些工作量,但方向是对的。建议所有开发者在非生产项目上可以提前体验。
3. KMP (Kotlin Multiplatform):2.4.20-RC发布,Swift互操作再进化
Kotlin新特性:kotlinlang.org/docs/whatsn...
8月12日,Kotlin 2.4.20-RC发布,这是2.4.20的最终候选版本。KMP相关的主要变化如下:
3.1 与KMP直接相关的关键变化
① Swift Export:Sealed Class映射为Swift枚举
Kotlin sealed class/interface现在可以映射为Swift枚举,在Swift端可以用switch进行穷尽匹配,新增子类时编译器会警告。这是KMP在iOS端开发体验的重要提升。
② Swift Export:跨语言继承
Kotlin中定义的接口现在可以在Swift端实现,然后传回Kotlin侧调用。这意味着你可以用纯Swift库来实现Kotlin定义的协议,对KMP项目中接入Swift原生生态非常有价值。
③ 自动生成Package.swift
assembleSharedXCFramework Gradle任务现在会自动生成Package.swift文件,方便XCFramework的SwiftPM分发。
④ Klib增量编译
从2.4.20-Beta1延续下来的改进,klib增量编译默认开启,大幅缩短多模块KMP项目的debug构建时间。
⑤ BTA扩展到JS/Wasm/Metadata
Build Tools API现在支持Kotlin/JS、Kotlin/Wasm和Kotlin metadata目标,为构建工具生态统一铺路。
⑥ 协程堆栈恢复
StackTraceRecoverable接口允许自定义异常在kotlinx.coroutines的堆栈恢复中保留特定属性。
3.2 其他值得关注的更新
-
Kotlin/Wasm
支持Wasmtime作为运行时
-
Kotlin/JS
新的浏览器测试DSL(取代已弃用的Karma),支持导出suspend lambda为async函数
-
编译器原生镜像
实验性发布,提供更快的命令行启动速度
-
标准库新增
allDistinct()、allDistinctBy()、allEqual()、allEqualBy()等集合函数
3.3 老刘点评
2.4.20-RC的一个核心主题是Swift生态的深度融合。Sealed class映射为Swift枚举和跨语言继承这两个功能,对KMP在iOS端的实际开发体验提升是实打实的。以前在KMP项目中做Swift互操作总是有各种墙,现在这些墙正在被逐一拆除。如果你在做KMP+Swift的项目,2.4.20-RC值得立刻在开发环境跑起来。
另外不知道大家注意到没有,wasm已经被越来越多的跨平台框架选择成为跨平台web端的解决方案。
所以一些经典的解决方案,会逐步成为业界的共识。
4. React Native:0.87发布,Strict TypeScript API转正
React Native博客:reactnative.dev/blog
8月11日,RN 0.87正式发布,这是继0.86(6月)之后的又一个大版本。
4.1 Strict TypeScript API默认启用
从0.80开始作为预览引入的Strict TypeScript API,在0.87中正式成为默认。这意味着:
类型可信任
类型定义直接从RN源码生成,不再依赖手工维护
API稳定
API范围限定在react-native根导出,内部文件变更不再产生破坏性变更
文档注释
大多数符号现在包含文档注释,悬停即可查看
Breaking Changes
deep imports(如react-native/Libraries/*)现在是类型错误,需要迁移;部分类型名称和形状有调整。
退出机制
通过opt-out开关可在0.88之前继续使用旧类型,0.89将移除。
4.2 Metro 0.87
- 源映射生成快2倍:DevTools加载更快
- 内存减半:更高效的源映射存储
- 支持TypeScript和ESM配置文件 :如
metro.config.mts - 移除
.es6扩展名和YAML配置支持
4.3 实验性SwiftPM支持
RN 0.87新增实验性SwiftPM支持,作为iOS平台CocoaPods的替代方案。只需要Xcode,不需要Ruby、Bundler或CocoaPods。使用npx react-native spm --deintegrate命令即可切换。
4.4 AGP 9支持
0.87是首个支持AGP 9的RN版本。同时最低工具链要求更新:
- Node.js >= 22.13.0
- 最低Kotlin版本 2.0+(内置Kotlin 2.2.0)
- compileSdk 37
4.5 老刘点评
RN 0.87的Strict TypeScript API转正是一个迟来的正确决定。从0.80到0.87花了近一年时间,但社区适配还算平稳。加上Metro性能提升和SwiftPM实验支持,RN在开发体验上正在追赶其他框架。建议正在使用RN 0.80+的团队尽快升级到0.87,类型系统的改善值得立刻体验。
当然也要考虑生态兼容和稳定性,生产版本可以稍微等等。
5. uni-app x:5.23/5.24双版本,Android蒸汽模式上线
uni-app x更新日志:doc.dcloud.net.cn/uni-app-x/r...
8月uni-app x连续发布了5.23 (8月6日)和5.24(8月13日)两个版本。
5.1 5.23版本:Android蒸汽模式上线
① 【重要】Android蒸汽模式正式上线
继5月鸿蒙蒸汽模式、7月iOS蒸汽模式后,Android蒸汽模式在5.23中正式上线。这意味着uni-app x在Android/iOS/鸿蒙三端都实现了蒸汽模式覆盖,渲染引擎自研路线基本完成。
而且这次的蒸汽模式不再要求强类型,可以使用js/ts编写,进一步降低了使用门槛。
② 【重要】微信小程序支持微信AI
uni-app x的微信小程序平台现在可以接入微信AI能力。
③ 蒸汽模式组件能力增强
sticky-section支持preload属性和push-pinned-header属性button支持loading-text-classpullDownRefresh支持uni.startPullDownRefresh/uni.stopPullDownRefreshuni.createSelectorQuery支持组件内多根节点查询- 全局属性支持
dataset
④ 其他平台更新
- Android:
uni.request开启QUIC时默认支持Brotli压缩 - iOS:新增苹果登录(Sign in with Apple)、
querySelector、swipeBackAsBackPress配置 - 鸿蒙:新增
uni.requestMerchantTransfer转账确认收款 - 微信小程序:支持独立分包
5.2 5.24版本:Bug修复
修复了5.23版本引发的text组件文本频繁更新时无法及时渲染、vue useComputedStyle部分情况下无法获取更新样式、以及uts付费插件编译报错等问题。
5.3 老刘点评
Android蒸汽模式的上线,意味着uni-app x在渲染引擎自研路线上完成了一个重要里程碑:三端都有了蒸汽模式。而且这次蒸汽模式不再强制要求强类型,对开发者更友好。加上微信AI支持,uni-app x在AI+小程序的融合方向上也在加速。如果你的项目需要同时覆盖App和小程序,值得紧跟更新。
还是那句话,同时有app和小程序并不代表你的app和小程序大部分功能重叠。
所以只有app、小程序的功能基本一致时老刘才推荐用同一套技术栈。否则仍然建议你分开选择解决方案。
6. .NET MAUI:Preview 7发布,Passkey认证+XAML增量热重载
.NET MAUI博客:devblogs.microsoft.com/dotnet/cate...
8月11日,.NET 11 Preview 7发布,这是.NET 11正式版前的倒数第二个预览版。MAUI相关的更新如下:
6.1 跨平台Passkey认证
全新的Passkeys Essentials API,支持Android 14+、iOS 16+、Mac Catalyst 16+和Windows 10 1903+。使用Passkeys.IsSupported检查可用性,Passkeys.CreateAsync注册凭证,Passkeys.AssertAsync进行认证。
6.2 XAML增量热重载
预览功能,使用源码生成器和MetadataUpdateHandler,在不重建应用的情况下更新已实例化的页面。支持属性变更、子元素增删、结构重排、附加属性、标记扩展、绑定和ResourceDictionary更新。Debug构建默认启用。
6.3 Shell路由模板
Shell路由现在支持类似ASP.NET Core的路径参数模板,包括必选、可选、默认值、约束、catch-all和混合段。
6.4 AOT安全的RelativeSource绑定
XAML源码生成器现在将{RelativeSource AncestorType=...}绑定编译为trim安全的TypedBinding,避免AOT发布构建中的反射问题。
6.5 NavigationPage和TabbedPage迁移到Handler架构
iOS和Mac Catalyst上,NavigationPage和TabbedPage改用标准Handler架构,替代了之前庞大的Renderer。
6.6 第三方平台后端扩展点
Preview 7为社区平台后端提供了统一的扩展点,XAML OnPlatform现在支持GTK、macOS和WPF。
6.7 其他更新
-
Android
FastDeploy2成为默认快速部署策略,CoreCLR Debug构建保持typemap稳定
-
Apple平台
IPA构建默认包含符号文件,
dotnet watch支持物理iOS设备 -
Windows
单实例激活支持、
Border键盘激活改进
6.8 老刘点评
Preview 7的Passkey认证是一个值得关注的新方向:跨平台生物认证API的标准化,对MAUI在企业级应用场景中的价值是加分项。XAML增量热重载也是长期被开发者呼吁的功能。但目前MAUI在.NET 11预览周期中已经到了Preview 7,正式版应该不远了,建议等正式版再评估升级。
7. 本月跨平台技术变化汇总
| 框架 | 7月状态 | 8月状态 | 关键变化 |
|---|---|---|---|
| Flutter | 3.44.6 | 3.47.0 | Material/Cupertino独立成包、Impeller默认桌面端、Widget Previews转正、Wasm推进 |
| KMP | 2.4.20-Beta1 | 2.4.20-RC | Swift Export密封类/跨语言继承、自动Package.swift、BTA扩展、原生编译器镜像 |
| React Native | 0.86(无变化) | 0.87 | Strict TypeScript API默认、Metro 0.87、实验性SwiftPM、AGP 9支持 |
| uni-app x | 5.14 / 5.15 | 5.23 / 5.24 | Android蒸汽模式上线、微信AI支持、三端蒸汽模式全面覆盖 |
| .NET MAUI | Preview 6 | Preview 7 | Passkey认证、XAML增量热重载、Shell路由模板、Handler架构迁移 |
老刘建议
-
Flutter用户 3.47是重大版本,Material/Cupertino解耦需要迁移。建议非生产项目立刻体验,生产项目先在测试分支跑通迁移流程。Impeller桌面端默认值得关注。
-
KMP用户 2.4.20-RC是正式版前的最后候选,Sealed class映射Swift枚举和跨语言继承对iOS端开发体验提升明显,建议在开发环境试用。
-
RN用户 0.87的Strict TypeScript API值得立刻升级,类型系统的改善是长期收益。注意breaking changes,特别是deep imports的迁移。
-
uni-app x用户 Android蒸汽模式上线,三端蒸汽模式全面覆盖,且不再强制强类型。建议App项目立刻体验。
-
MAUI用户 Preview 7的Passkey认证和XAML增量热重载值得关注,但建议等.NET 11正式版发布再评估升级。
技术的车轮滚滚向前,只有不断学习,才能永远在牌桌上。
🤝 如果看到这里的同学对客户端或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。
🎁 私信免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。可以作为Flutter学习的知识地图。
💬 : laoliu_dev
📂 老刘也把自己历史文章整理在GitHub仓库里,方便大家查阅。