哈喽,我是老刘
2月底的时候,gitee 上的开源鸿蒙下的Flutter相关项目全部停止更新,仓库显示已关闭。
后来发现不是项目停了,只是从gitee切换到GitCode。
原因大概率是因为GitCode是基于华为云的。
但是今天老刘不是想说切换托管平台的事,而是想在这里说说Flutter之于鸿蒙。
纯血鸿蒙的现状
- 微信、支付宝这类必备应用的功能一致性
对于这些必备应用来说鸿蒙原生应用的功能是否和Android、iOS版本一致是非常重要的。
我问了deepseek,回答是:
"主要功能已对齐,但部分附加特性或需等待后续更新。"
- 应用数量对比
deepseek的回答如下:
结论:现阶段的纯血鸿蒙手机仍然无法成为满足大多数人主力手机端需求。
如何快速推进生态
站在厂商的角度,肯定希望所有开发者都来开发鸿蒙原生应用。甚至在纯血鸿蒙刚推出时不惜动用市场之外的力量。
站在开发者的角度,多一个平台就多了一份开发成本,当前的经济形势让开发团队支付这个成本实在太重了。
站在用户的角度,同一个APP在不同设备、系统上的体验最好一致,否则使用起来就很难受。比如我在手机上用微信读书看书,回家后再ipad上继续看,肯定希望操作、体验都是一样的。
这就形成了一个不可能三角。
如何在这里面找到一个最优解呢?
老刘觉得Flutter这样的跨平台开发框架就是破局的关键。
首先来看Flutter的特点:
- 一套代码多个平台运行
- 原生级别的性能
- 超高的多端一致性体验
站在开发者的角度
以中型应用为例,传统双端(iOS+Android)开发需12人月,Flutter可压缩至8人月。
若新增鸿蒙适配,原生开发需额外增加4人月。
而基于Flutter仅需1人月处理平台特定API(例如系统原生的各种功能调用)。
这种边际成本递减效应显著提升开发者支持鸿蒙的动力。
站在用户的角度
Flutter在渲染层面是独立于平台的,因此可以认为除非开发者特意针对不同平台设计不同的交互。
否则在不同平台上,比如Android、iOS和鸿蒙上,用户体验基本是一致的。
站在鸿蒙的角度
本身鸿蒙的设计就借鉴了Flutter的很多东西。
同时基于Flutter的分层设计理念,兼容新的系统需要的工作是比较清晰且独立的。
因此在鸿蒙上支持Flutter相对来说的成本并不高。
而且从开发者留存的角度看,能最大程度的让现有的客户端开发者去兼容鸿蒙。
所以老刘认为以平台的角色去支持Flutter等跨平台框架是鸿蒙系统最优选择。
事实上鸿蒙方面也是这样做的,所以才会有文章开头看到的那些开源项目。
鸿蒙支持Flutter的现状
总的来说,鸿蒙对Flutter的支持已进入可用但需优化阶段:基础功能适配成熟,但生态完整性和性能调优仍需时间。
具体来说Flutter支持鸿蒙需要以下几个几个工作:
1、Flutter框架在鸿蒙系统的原生app外壳中能运行起来
2、Flutter应用能打包成鸿蒙原生应用
3、三方库对鸿蒙系统的支持
其中 1 和 2 因为前面说的原因,已经可以很好的运行起来了。(这是实现起来最简单的部分)
但是有一点需要注意,Flutter没发布一个新的版本,就需要鸿蒙方面去适配和跟进。
这方面目前看和Flutter的官方版本有一定的进度落后。
第3点需要分两种情况来看:
对于纯Dart库
理论上不需要开发者做任何操作,应该能在鸿蒙版Flutter上正常运行。
这部分排除底层实现的bug和性能方面的问题,应该是问题不大的。
对于Flutter + 原生混合开发的插件
这种混合开发的插件目前是最麻烦的地方。
因为需要这些库的开发者去主动适配鸿蒙系统,否则无法正常运行。
但是对这些广大的中小开发者来说,目前看没有特别的动力去推进开发适配工作。
假设我是一个开源的Flutter三方插件的开发者,如果要去适配鸿蒙,我需要先学习鸿蒙原生开发。
然后还需要拉一个单独的分支专门针对鸿蒙版Flutter进行适配。
最关键的是一目前鸿蒙的开发者体量,似乎对我的开源项目没有什么帮助。
所以老刘觉得如果想要开发者有动力去进行这方面的适配工作,可能钞能力是要用上的。
能看到鸿蒙方面也在积极的推进这方面的工作。
比如老刘最近就收到过几次写鸿蒙开发文章的邀请,文章数据好会有一些奖励。
总结
简单总结一下。
纯血鸿蒙本身目前无法平替Android或者iOS手机。应用生态的缺口仍然比较大。
开发原生鸿蒙应用对开发团队来说成本很高。
跨平台框架是鸿蒙应用生态快速发展的破局之道。
目前鸿蒙已经支持Flutter框架。
但是对于Flutter + 原生模式的三方插件需要开发者主动适配鸿蒙系统,目前数量较少。
最后作为一个开发者,希望写一套代码可以运行在所有平台上,不用熬夜加班去适配。
如果看到这里的同学对客户端开发或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》