Flutter官方拒绝适配鸿蒙的真相:不是技术问题,而是...

哈喽,我是老刘

老刘做Flutter开发快7年了,刚开始的时候还没有鸿蒙。

这两年随着鸿蒙系统相关的争议变多,讨论Flutter 在鸿蒙上的适配的争议也开始变多了。

比如前段时间写了一篇文章讨论用Flutter开发鸿蒙应用。

Flutter 3.35倒逼鸿蒙:兼容or出局,没有第三条路!

就有人评论说应该是Flutter官方适配鸿蒙,而不是鸿蒙适配Flutter。

其实这么说也是有一点道理的(虽然不多),今天老刘就展开分析以下到底应该是谁来适配谁?


从技术角度看:Flutter确实应该主动适配鸿蒙

Flutter作为跨平台框架,它的核心价值就是"一套代码,多端运行",所以如果不能适配重要平台,那就失去了跨平台的意义。

就像当年Flutter必须适配iOS和Android一样。

这不是谁求谁的问题,这是技术逻辑的问题。

Flutter从诞生那天起,就打着"Write once, run anywhere"的旗号。

但是事实是Flutter官方确实没有表现出适配意愿。


现实情况更复杂:这是一个博弈过程

理想很丰满,现实很骨感。

技术逻辑是一回事,商业逻辑是另一回事。

在当前的经济形势下,各个企业去增加一个独立的鸿蒙团队的成本是难以接受的。

Flutter的价值就在于能够有效的降低这种成本。

因此站在鸿蒙的角度,是应该主动适配Flutter的,而不是等待Flutter官方适配。

其实不仅仅是Flutter,主流的跨平台框架鸿蒙官方都有必要去主动适配。

这就像是一个新开的商场,你不能指望品牌商主动来入驻。

你得主动去招商,提供优惠政策,比如免费装修。

鸿蒙的困境:

  • 用户基数还很少,开发者投入意愿不强。
  • 生态建设需要时间,短期内难以完全替代Android。
  • 政策推动有限,最终还是要靠技术魅力。

Flutter的考量:

  • Google作为Flutter的主导者,对鸿蒙的态度可能比较复杂。

    这个有国际形势的原因,具体背后有哪些权衡咱也不知道,咱也不敢说。

  • 本质的原因是鸿蒙的体量还不够。

    就好像当年微软的Windows Phone,技术很好,没有足够的市场份额,开发者就不会买账。

所以从谁受益的角度来看,明显鸿蒙方面去适配Flutter的收益更大。


鸿蒙已经在做Flutter适配

话说回来,其实鸿蒙方面已经在为包括Flutter在内的跨平台框架做适配了。

而且动作还不小。

关键时间线

让我们先看看这几年鸿蒙Flutter适配的关键节点:

2021年1月 - 美团外卖MTFlutter团队率先突破。

发布《让Flutter在鸿蒙系统上跑起来》技术文章。

应该是业界首次公开的Flutter鸿蒙适配探索。

2023年8月 - 华为在HDC大会正式发声。

发布HarmonyOS NEXT,确定第一批跨平台框架适配名单:

  • Flutter
  • React Native
  • 京东Taro
  • uni-app

2023年9月 - OpenHarmony-SIG组织正式开源Flutter适配项目。

基于Flutter 3.7版本进行适配。

这意味着适配工作从企业内部走向了开源社区。

2024年8月 - 三方库适配取得重大进展。

深开鸿、开鸿智谷、鸿湖万联完成36个Flutter三方库适配。

其中9个完成测试验收。

具体适配工作有哪些

从技术层面来看,鸿蒙适配Flutter主要需要做这几件事:

嵌入层开发

重新实现Flutter嵌入层以适配鸿蒙平台。

这是最核心的工作,相当于给Flutter换了一个"底盘"。

Flutter Engine移植

基于Android版本进行鸿蒙平台的移植。

这里有个巧妙的地方,鸿蒙系统延用了Android的很多技术方案。

比如Vulkan图形API。

所以把Impeller这样的渲染引擎移植过来,并不需要大动干戈。

开发工具适配

Flutter Tools支持构建HAP包。

这样开发者就可以用熟悉的Flutter命令行工具直接构建鸿蒙应用了。

生态建设的困局

但是,技术适配只是第一步,真正的挑战在于生态建设。

简单来说就是:Flutter有了,但是三方库还没有完全适配好。

从技术原理来说,如果是纯Dart的三方库,适配起来应该比较简单。

大概率是能直接运行的,或者极少的修改就能运行。

但是如果涉及到原生代码的三方库,那就麻烦了。

需要重新移植Android/iOS的原生代码到鸿蒙平台。

这个工作量就比较大了。

而且很多三方库的维护者可能对鸿蒙平台并不熟悉,更没有去适配的意愿。

对鸿蒙上各种开发框架来说都是这样的,基础库的不完善造成了开发者移植app的困难,进一步造成了App数量的缺少,即使移植过来也可能是功能缺失的。

应用数量和质量都不够就很难快速提升用户量,用户量不够就很难吸引足够多的开发者。

这就形成了一个恶性循环。

总结

其实说到底,这也不能说是什么博弈。

任何一个跨平台框架都不可能去适配所有的系统。

就像Flutter也没有适配塞班、Windows Phone这些已经消失的系统一样。

反过来说,作为体量还不够大的系统,主动去提供更好的应用移植解决方案,确实是快速建立生态的最佳路径。

老刘作为一个开发人员,我觉得一个新的系统要想快速建立生态,其实更好的方案是向上提供一套和现有最流行系统(比如Android)兼容的系统级API。

这样大部分应用可以用最小的代价迁移到新系统上。

如果你真的觉得现有的系统API有很大的缺陷,也完全可以在现有API基础上做增量优化。

如果你的优化真的有很大先进性,随着开发者增加,自然有人会使用。

当然这只是开发者的角度。

很多事情也不是给开发者做的。

连API都是全新的全自主研发系统和兼容API的系统,对很多不懂技术的人来说还是有很大差别的。

另一方面,鸿蒙系统这种设计在智能家居、汽车等不太依赖现有生态的场景下,也有自己的优势。

毕竟在这些新兴领域,大家都是从零开始,没有历史包袱。

鸿蒙的分布式架构、万物互联的理念,在这些场景下确实有独特的价值。

所以,与其纠结谁适配谁,不如关注技术本身能解决什么问题。

Flutter适配鸿蒙也好,鸿蒙适配Flutter也好,最终受益的都是开发者和用户。

技术的发展从来不是零和游戏,而是共同进步的过程。

如果看到这里的同学对客户端或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。 私信免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。 可以作为Flutter学习的知识地图。

------ laoliu_dev

相关推荐
木易 士心4 小时前
Flutter PC 应用开发指南:从环境搭建到实战避坑
flutter
平平不平凡4 小时前
鸿蒙组件分级指南:从细胞到思维的系统化角色解析
harmonyos
陈大头铃儿响叮当5 小时前
Android Studio升级后,Flutter运行android设备报错
android·flutter·android studio
勤劳打代码5 小时前
isar_flutter_libs 引发 Namespace not specified
android·flutter·groovy
爱笑的眼睛116 小时前
HarmonyOS Marquee组件深度解析:构建高性能滚动视觉效果
华为·harmonyos
不爱说话郭德纲6 小时前
UniappX不会运行到鸿蒙?超超超保姆级鸿蒙开发生成证书以及配置证书步骤
前端·uni-app·harmonyos
爱笑的眼睛118 小时前
HarmonyOS中的智能路线规划与导航应用开发:利用分布式架构构建跨设备体验
华为·harmonyos
QuantumLeap丶8 小时前
《Flutter全栈开发实战指南:从零到高级》- 11 -状态管理Provider
android·flutter·ios
安卓开发者9 小时前
第12讲:入门级状态管理方案 - Provider详解
flutter