flutter 跨端能力

22 阅读4分钟

android和ios自然不需要说,已经经过这么长时间的迭代和技术更新发展,支持已经很好了。所以这里主要是是研究关于鸿蒙和web端页面的适配。

注:这里我只罗列了我目前最关心的更新,当然还有一些其他的更新和变化这里并没有写出来,感兴趣可以移步官网,如果是这些变化会影响是我忽略了,但是会影响到结果的判断,欢迎指正。

首先我们关注一下外面各个生态的一些要求变化

ios生态:多窗口适配

其实这个要求很久之前就出来了,不过没有做强制。 Apple 正式宣布,自 iOS 26 起,所有基于最新 SDK 构建的 UIKit 应用 必须采用 UIScene 生命周期。这不再是一个可选项,而是应用能否启动的“入场券”。

Flutter 3.38 正式纳入了对 UIScene 的完整支持,以响应这一强制性变更。如果您的应用仍依赖旧版的 AppDelegate 生命周期,在 iOS 26+ 设备上将无法启动。

当然也可以手动自己去更改配置 [TN3187:迁移至基于 UIKit 场景的生命周期]

Android 生态:支持 16 KB 的页面大小

自 2025 年 11 月 1 日起,提交给 Google Play 且以 Android 15 及更高版本为目标平台的所有新应用和现有应用更新都必须在 64 位设备上支持 16 KB 页面大小。

从历史支持4KB内存大小到16KB内存大小支持。

我们再看一下3.38版本做了哪些更新

针对外部生态的变化,flutter做了哪些更新? 包含了对于Apple强制的UIScene生命周期的基本支持,对于Android16KB页面的支持。符合了新版本机型的硬性要求。 其他更新的详细介绍可以查看: Flutter 3.38 发布,快来看看有什么更新吧

基于对android和ios的一些硬性的规定的遵守,这里我们推荐使用3.38最新版本。

flutter与原生能力对比

也是一直很好奇,flutter开发和原生开发技术到底有哪些差异,这篇文章从性能、效率和生态分析各个方面去做了对比。 Flutter与原生开发技术对比:性能、效率与生态分析

对比我们得出一个结论,就是flutter的体验和原生大差不离,而且有一个好处是一套UI多处渲染,省去了多个团队的维护成本。

flutter对于鸿蒙的支持

关于鸿蒙 ,flutter官方是明确说明不会为鸿蒙做适配,基于这种情况,鸿蒙团队基于一些flutter sdk的版本自己去做了适配,有一套ohos Flutter SDK,对于全新的项目华为更推荐使用自己的ArkUI框架

目前鸿蒙已经做过适配的版本

3.7.12、3.22.0、3.27.4、3.32目前适配中,只有beta版本。 如果要做全端,建议选择flutter版本为3.27.4的版本 Flutter-OH版本演进规划和分支策略 但是还是那句话,一般性的功能适配也没有什么很大的问题。

目前使用flutter兼容鸿蒙的团队

微信、UC浏览器、闲鱼、夸克、钉钉,其中咸鱼系是flutter的深度使用者

关于flutter鸿蒙的生态情况、系统支持、三方插件情况

首先关于生态 华为社区里面有很多关于flutter开发遇到的问题的帖子社区也在逐渐丰富 插件支持情况:1月20日迎来重大更新,目前社区已经贡献超过469个专门为鸿蒙适配的Flutter的三方插件库(如网络请求、本地存储、相机等)数量,并且数量近期实现翻倍增长,能满足大部分需求 插件支持官方demo

image.png

注意:还未有插件支持的功能,就需要手动去重写,将java/swift转为ArkTs

纯血版鸿蒙和混血鸿蒙

总所周知,鸿蒙系统分为两种版本 纯血鸿蒙(HarmonyOS NEXT)和混血鸿蒙

官方明确支持 鸿蒙版纯血版

image.png