Flutter可能是鸿蒙快速建立生态的最佳选择

【鸿蒙-flutter】 本文介绍了Flutter与鸿蒙系统集成的开发环境搭建及常用工具配置。主要内容包括:1)Flutter项目创建与鸿蒙集成方法,通过创建Flutter模块并构建HAR包实现;2)VS Code开发环境配置,推荐安装Flutter/Dart插件、代码片段工具及调试辅助插件;3)常用第三方库推荐,涵盖屏幕适配、网络请求、状态管理、UI组件等领域,如flutter_screenutil、dio、flutter_bloc等。文档提供了具体操作命令和代码示例,帮助开发者快速搭建跨平台开发环境并提升开发效率。 阅读详情

哈喽,我是老刘

作为一个客户端开发,像鸿蒙这样的系统的进展是不得不关注的
前段时间Harmony OS NEXT明确表示了剥离AOSP
对我们来说就是一件挺大的事情

image.png

如果作为一个消费者,你会买基于这个系统的手机吗?
如果这样问比较空泛,我说的更具体一点
如果一个手机只能安装目前普通安卓手机上10%的应用,你会买吗?
20%呢?
30%呢?
50%呢?
80%呢?
那我自己来说,我是客户端开发者,目前使用的是小米手机
我的手机上除了安装我们日常常用的一些app,比如微信、支付宝、抖音等等
还会安装很多相对冷门的app,比如阅读、Obsidian、AnkiDroid等等
而且随着AI的爆发式发展,未来还会安装ChatGPT、Cici等和AI相关的App
当然还有一些和开发相关的工具,比如Appium
如果买一个新手机,上面的app中即使有10%不能使用,我也是没法接受的

这其实就是一个新生的操作系统面临的最大问题:应用生态

而这种生态的改进就需要大量公司和开发者在这个操作系统上开发对应的App版本

可是当前的经济形势大家也能感受到
最近很多找我学习Flutter的小伙伴都是因为公司把原先的Android、iOS两个团队缩减为一个团队、甚至一两个人了
所以要求使用Flutter这样的技术进行跨平台开发

在这种情况下,如果要求所有的公司都额外成立一个鸿蒙开发团队
和Android、iOS的团队并行
至少短期内是不太可行的

那么对一个新兴的操作系统来说,如何能快速支撑起可用的生态呢?
我觉得有几条路可以走:

1、通过虚拟机兼容Android或者iOS的App

iOS是一个封闭系统,那可行的似乎只有Android了
这条路似乎当年的黑莓走过,不过效果不太理想(ps:最近老是想买个全键盘手机😊)

我们作为客户端开发,经常碰到的问题就是客户端App的性能优化
也就是说即使在纯原生的开发条件下
也经常会因为用户体验不够流畅,而不得不进行代码级的优化
所以,除非是0性能损耗的虚拟机,否则用户体验肯定不会太好
更何况虚拟机本身也会面临很多兼容性的考验

既然虚拟机不是太理想的选择,那就还是要从开发对应平台的App上想办法

2、现有代码一键转换

如果你关注过Android开发语言的发展
应该会了解当年Google把Kotlin作为Android的官方开发语言后
推出了Java代码一键转换为Kotlin代码的工具
 

image.png


当然,这是有一定的限制条件的
首先,kotlin和java都是基于Java虚拟机运行的编程语言
其次,只是语言层面的转换,并没有将Java调用的老的API转换成新的Jetpack Compose
也就是说所有调用的API都没有变化

所以如果要实现Android原生代码一键转换为鸿蒙ArkUI代码
复杂度肯定是几何倍数提升的
(不过对遥遥领先这点难度算啥??)

如果能实现这套工具,那肯定是最完美的解决方案
转换后就是纯粹的鸿蒙原生代码,即不存在兼容性问题,也不存在性能问题
当然,如果本来的App就是使用跨平台方案开发的,比如Flutter、RN等,还是需要进行额外的兼容的

3、支持跨平台开发框架

把一个现有的支持Android、iOS的跨平台框架扩展到鸿蒙上
这可能是目前综合来看最靠谱的方案了

在当下这种跨平台开发大面积普及的情形下
如果能在鸿蒙平台上使用Flutter或者RN开发,无疑能极大地减少学习成本
同时现有App的迁移成本也同样减少了很多
对开发App的公司和组织来说,也少了额外再搭建一个团队的成本

那么Flutter和RN或者其它跨平台框架,哪一个更适合鸿蒙呢?
其实对鸿蒙来说,如果各种跨平台框架都能尽快迁移,肯定是最好的
 

image.png

但是不同跨平台框架的架构截然不同,迁移的难度也天差地别
我们以RN和Flutter进行说明

RN的迁移

先来看RN的架构

image.png

通过JS语言调用RN提供的JS层面的SDK编写页面逻辑。
运行时通过JSCore执行的JS代码会和RN的系统原生模块通信。
原生的RN模块在收到JS层面发过来的页面信息后,会翻译成对应的原生组件,再调用原生SDK进行绘制。

那么要实现RN的鸿蒙版本
就需要把上图中绿色的部分在鸿蒙上再实现一份

千万不要以为这就是实现一个简单的模块这么简单
这其实是最复杂的地方
不同系统的渲染原理存在一定的差异,同时其SDK提供的API更是千差万别
因此把RN上层的同一套页面体系,翻译到不同系统上是一件非常复杂的工作
RN是FaceBook在2015年开源的,其开始开发的时间更是要早很多
但是直到今天,仍然会有一些页面组件的行为,在不同系统上不能做到一致
所以可以想象,这将是一个多么大工作量的任务

其实已经有一个开源的react-native-for-harmony项目了
react-native-for-harmony: react native for harmony (gitee.com)icon-default.png?t=N7T8https://gitee.com/jiandong001/react-native-for-harmony/
有意思的是还能看到项目的工作量
我一个带团队的看的头皮发麻
 

image.png


这还只是针对RN的老架构,且并非全部功能

那我们再来看看Flutter这边的情况会不会好一些

Flutter的迁移

同样先来看Flutter的架构
 

image.png

这是Flutter和Android原生开发的架构对比图
可以看到Flutter最大的特点就是自己打造了一套跨平台的渲染SDK
也就是说Flutter的渲染是不依赖平台SDK的
而Flutter SDK底层依赖的渲染引擎Skia,本身就是一个跨平台的渲染引擎
在鸿蒙上也已经支持了Skia的运行(Impeller的情况暂时还不能确定)

所以,在鸿蒙上兼容Flutter主要有两块的工作量
1、在运行层面,将Flutter嵌入一个鸿蒙的原生APP容器中
2、实现Channel在原生层面的各种操作
这两块工作都有一定的工作量
但是和数千个Flutter组件一一对应到原生API相比那就不算啥工作量了

另外鸿蒙在兼容Flutter上还有一个巨大的优势
ArkUI本身也是支持跨平台的,而ArkUI跨平台的底层逻辑参考了很多Flutter的代码,可以说是渊源颇深(这里用“参考”没毛病吧?)
arkui_ace_engine: ArkUI framework | ArkUI开发框架 - Gitee.comicon-default.png?t=N7T8https://gitee.com/openharmony/arkui_ace_engine/tree/master
这个是ArkUI的源码地址,感兴趣的同学可以在代码中搜一下Flutter关键词,主要是c++代码

正因为前面我说的那些优势,其实现在已经有一个Flutter的鸿蒙移植项目开源了
OpenHarmony-SIG/flutter_flutter (gitee.com)icon-default.png?t=N7T8https://gitee.com/openharmony-sig/flutter_flutter
可以看到虽然目前只是针对openharmony的,但是完成度还是比较高的 

image.png

image.png


这里还需要说一下三方库的问题
如果是纯Dart的三方库,那理论上是可以直接运行的
如果是通过channel调用了原生功能,那就需要三方库的开发者也跟进做一下兼容工作

对比RN和Flutter在迁移到鸿蒙的开源项目
这巨大的工作量和进度差异本质上还是因为架构的差异
这也就是我说Flutter可能是鸿蒙快速建立生态最佳选择的根本原因

对比和方案说完了
在这些开源的和即将开源的项目中,也能看到鸿蒙团队在付出很大的努力推进生态的发展
作为一个开发人员
我是比较鄙视玩文字游戏的
(比如搞两个,OpenXX和包含AOSP的XX系统,然后就自主研发还开源了Σ(⊙▽⊙"a)
但是我仍然很希望Harmony OS NEXT能成为一个真正自主研发的操作系统
并且能真正的在技术上有所突破和建树
到时候我会自愿成为你们水军的
(给水军的费用也能分点就更好了)

image.png

好了,以上就是我对Flutter和鸿蒙系统的一点看法
如果看到这里的同学有学习Flutter的兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDMzNTM0Mw==&mid=2247483665&idx=1&sn=56aec9504da3ffad5797e703c12c51f6&chksm=c12c4d11f65bc40767956e534bd4b6fa71cbc2b8f8980294b6db7582672809c966e13cbbed25#rd

鸿蒙+flutter 干货来咯! 鸿蒙+flutter 混合开发,可以玩了,如何在MacOS 上使用 Flutter 构建鸿蒙App,如何在Windows上构建App,本文章给你准备好了 阅读详情

相关推荐

1.Flutter鸿蒙化环境配置(windows)

Flutter鸿蒙环境配置指南(Windows) 本文详细介绍了在Windows系统上配置Flutter鸿蒙开发环境的完整流程。主要内容包括: 环境搭建: 从GitCode获取鸿蒙版Flutter SDK 配置Java、ohpm、hvigor、node和hdc等环境变量 设置国内镜像源和必要的SDK路径 项目创建与运行: 使用命令行创建Flutter项目 通过DevEco Studio配置鸿蒙模拟器 执行打包命令并运行Flutter项目 注意事项: 环境变量配置顺序的重要性 开发过程中的常见问题解决方案

weixin_44129599的博客 3843

flutter 适配鸿蒙next,并打包为HAP安装包

下载过程就比较简单一路next基本就没有问题。1.2 git clone 上面链接中的代码我看issue中说的是要选择dev分支,不要选master分支的,dev不断在更新相比master拥有更多功能,但最近我看dev分支已经合并到master分支上了,两者区别应该不会很大。下面是dev分支的clone命令。下载后,在环境变量系统变量path中添加。

qq_45679453的博客 1万+

鸿蒙系统起飞!Flutter 完全适配指南优快云2021-01-23 02:47

通过上述的构建和适配工作,我们以极小的开发成本实现了Flutter在鸿蒙系统上的移植,基于Flutter开发的上层业务几乎不做任何修改就可以在鸿蒙系统上原生运行,为迎接鸿蒙系统后续的大规模推广也提前做好了技术储备。当然,故事到这里并没有结束。在最基本的运行和交互能力之上,我们更需要关注Flutter与鸿蒙自身生态的结合:如何优雅地适配鸿蒙的分布式技术?如何用Flutter实现设备之间的快速连接、资源共享?现有的众多Flutter插件如何应用到鸿蒙系统上?

gfdjhg的博客 1612

Flutter在鸿蒙HarmonyOS NEXT实践

移动端开发中少不了一种技术栈叫做跨平台,目前常见的跨平台三方框架为Flutter、ArkUIX、React Native、Taro、WEEX、UniApp等,目前跨平台占比多的就属Flutter。这篇分享下Flutter在鸿蒙HarmonyOS NEXT实践。

fengyongge的专栏 5063

HarmonyOS开发——鸿蒙Flutter项目适配

随着鸿蒙 HarmonyOS Next的快速发展,越来越多的开发者开始尝试将 Flutter 项目迁移至鸿蒙生态。本文将基于实际开发经验,从环境搭建到应用部署,详细讲解适配 HarmonyNext 的完整流程,并记录常见问题及解决方案。

android__bye的博客 5042

Flutter 框架跨平台鸿蒙开发 —— 摩擦力与惯性:模拟鸿蒙系统的丝滑滚动手感

本文深入探讨了HarmonyOS NEXT系统中滑动交互背后的物理学原理与实现方法。文章从惯性摩擦力的物理本质出发,解析了指数衰减方程v=v0·e^(-kt)如何模拟自然减速效果,并提供了Flutter中自定义HarmonyScrollPhysics的核心代码实现。通过对比线性与指数减速的区别,阐述了鸿蒙系统"丝滑"交互的三大特征:快速响应、适度阻尼和柔和回弹。文中包含物理参数对照表、逻辑流程图等实用参考资料,帮助开发者精准调校滑动效果,使应用融入鸿蒙生态。最后指出优秀交互体验应顺应直觉

数学老师-帆 5403

Flutter鸿蒙终端一体化-珠联璧合

点击上方蓝字关注我,知识会给你力量在上一篇文章中,我们初步了解了在鸿蒙中使用Flutter的可能性和可用性,还没看过的可以参考下面的链接。Flutter鸿蒙终端一体化-混沌初开在文章的最后,我们分析了两种混编模式,和Android、iOS类似,分别是源码依赖和产物依赖,在我们的项目中,由于很早之前就开始介入Flutter开发,同时抽象了一套Flutter的轻量级渲染模式,所以,这里我们会使用产物依...

eclipse_xu 5243

给硬件工程师的UCIe软件配置入门:从寄存器表到实战调试,一篇讲透

本文为硬件工程师提供UCIe软件配置的全面指南,从寄存器表解析到实战调试技巧,涵盖链路训练、错误排查等关键环节。通过详细代码示例和分层诊断法,帮助工程师快速掌握UCIe寄存器访问机制,提升异构集成开发效率。

weixin_30268921的博客 313

让 Flutter 在鸿蒙系统上跑起来

总第433篇2021年 第003篇鸿蒙系统 (HarmonyOS)是华为推出的一款分布式操作系统,那么如何在保证开发迭代效率的前提下,以相对低的成本将移动应用快速移植到鸿蒙平台上呢?美团...

美团技术团队 2万+

Windows下Colmap编译安装全攻略:从Boost到CUDA的避坑指南

本文详细介绍了在Windows系统下编译安装Colmap三维重建工具的完整流程与实战经验。针对Boost库版本兼容性、CUDA与Visual Studio的版本匹配等常见难题提供了具体的避坑指南和解决方案,帮助开发者高效完成从环境配置到最终部署的全过程。

weixin_28235513的博客 199

LabVIEW状态机实战:用STM32+DHT11搭建温湿度监测系统(附完整VI源码)

本文详细介绍了如何利用LabVIEW状态机模式与STM32微控制器、DHT11温湿度传感器构建温湿度监测系统。通过硬件选型、状态机设计、LabVIEW程序实现及系统优化等环节,提供了一套完整的解决方案,并附有VI源码,助力开发者快速实现嵌入式温湿度监测应用。

weixin_42549723的博客 521

Flutter × 鸿蒙系统:一文搞懂如何将你的 App 移植到 HarmonyOS!

摘要:本文详细介绍了如何将Flutter应用迁移至鸿蒙系统(HarmonyOS)的完整流程。通过安装Flutter SDK、DevEco Studio和社区插件flutter_harmonyos,开发者可以快速适配鸿蒙设备。文章提供了代码示例,展示如何替代原生功能(如设备路径获取、Toast提示、通知和传感器读取),并针对典型场景(如日程提醒、相册选择)给出实战解决方案。此外,还解答了常见问题,强调平台差异隔离和模块化设计的重要性,为跨平台开发提供实用指导。

m0_74456227的博客 5637

深入解析FastDDS:SHM与DATA-SHARING传输层的性能对比与实现细节

本文深入对比了FastDDS中SHM与DATA-SHARING两种传输层的实现机制与性能差异。SHM采用端口化共享内存模型,存在两次数据拷贝;而DATA-SHARING通过共享历史实现真正的零拷贝,大幅降低延迟与CPU占用。文章结合实战测试数据,为机器人、自动驾驶等高实时性场景提供了关键的性能优化选型与配置指南。

weixin_28358083的博客 232

[鸿蒙开发实战篇]Flutter鸿蒙开发

Flutter是Google开发的UI工具包,用于构建美观、原生性能的移动、Web和桌面应用程序。单一代码库,多平台部署高性能渲染引擎丰富的组件库热重载开发体验强大的状态管理鸿蒙系统是华为开发的分布式操作系统,支持多种设备形态。分布式架构微内核设计统一开发语言跨设备协同安全可靠。

尽吾所能 分享永久免费知识 4075

Yolov8-pose关键点检测:loss优化 | LRM loss困难样本挖掘,提升难样本、遮挡物等检测精度

LRM loss应用到能够大幅提升pose遮挡物性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1715

《YOLO多模态创新改进专栏目录 》全网独家创新,多模态融合改进教程,包含早期融合、中期融合、后期融合、损失函数改进、二次创新模块、独家创新等几百种创新点改进,答疑群提供完整项目,永久更新中

🔥《YOLO多模态创新改进专栏》重磅来袭!🚀 本专栏汇集最新顶会顶刊创新点,提供1000+篇YOLO多模态改进方案(涵盖v8-v26),包含: 多模态融合策略(早期/中期/后期) 损失函数优化 独家创新模块 详细改进步骤 ✨特色服务: ✔️ 配套完整可运行项目 ✔️ 专业答疑群支持(含非计算机专业指导) ✔️ 持续更新至2026年 ✔️ 适用目标检测/OBB/分割/分类等多任务 💡适合人群: 科研人员 | 研究生 | 需发SCI/CCF论文者 环境要求宽松,新手友好,助力快速产出科研成果! 📈早订优

Ai缝合怪、助力小伙伴高效发论文 746

鸿蒙系统起飞!Flutter 完全适配指南

鸿蒙系统 (HarmonyOS)是华为推出的一款分布式操作系统,那么如何在保证开发迭代效率的前提下,以相对低的成本将移动应用快速移植到鸿蒙平台上呢?美团外卖 MTFlutter 团队近期...

优快云资讯 6230

AI大模型探索之路-应用篇11:AI大模型应用智能评估(Ragas)

随着人工智能技术的飞速发展,AI大模型(LLM)已经成为了推动技术创新和应用的关键因素。这些大模型在语言理解、图像识别、自然语言生成等领域展现出了惊人的能力。然而,随着模型规模的增大,它们对计算资源的消耗、环境适应性、模型稳定性、安全性和可解释性等方面也提出了新的挑战。因此,对AI大模型进行智能评估变得至关重要,以确保它们在实际应用中的稳定性、可靠性和有效性。本文将详细介绍Ragas框架,一个专为AI大模型设计的智能评估工具。

寻道AI,探索AI无限可能! 5546

鸿蒙next选择 Flutter 开发跨平台应用的原因

鸿蒙选择 Flutter 作为主要的跨平台应用开发框架,体现了其在技术、生态和开发者支持上的战略选择。Flutter 提供了高效的开发体验、出色的性能和广泛的跨平台支持,使得鸿蒙能够迅速构建多设备、多平台的应用生态。此外,Flutter 的易于集成与鸿蒙系统的创新特性,能够为开发者提供更多的灵活性和可能性,从而推动鸿蒙生态的发展。通过采用 Flutter,鸿蒙系统不仅能够支持移动端设备,还能够扩展到更多的智能硬件平台,进一步加强了其全场景智能生态的建设。

小淼淼的博客 2988

LDRA Testbed软件静态分析_常见问题及处理

通过前面的几篇文章,LDRA Testbed软件静态分析的内容基本讲解完了,本篇文章将针对使用Testbed进行软件静态分析的常见问题进行介绍。 到此为止,LDRA Testbed软件静态分析的内容已经全部讲完,如果有问题,欢迎私信提问(不经常登录,回复可能不及时,见谅)。下一篇文章将开始讲解如何使用Testbed进行单元测试。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 2589

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【flutter+鸿蒙】从Flutter开发者视角来看鸿蒙是怎么样的?

本文从Flutter开发者的视角,深入探讨了Flutter应用适配鸿蒙系统的关键技术点。文章分析了Flutter与鸿蒙在渲染引擎、UI框架等方面的架构差异,详细介绍了项目配置、UI适配和交互优化的具体实现方案。

xichen_knight的博客 4751

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

跨平台适配:Flutter在鸿蒙生态中的应用

Flutter在鸿蒙生态中的适配与实践 本文探讨了Flutter框架在HarmonyOS系统上的适配方案与技术要点。Flutter凭借自绘引擎优势,可实现一次开发多端部署,但在鸿蒙平台仍需进行接口适配。文章对比了官方适配与HAP打包两种方案,推荐使用HarmonyOS on Flutter适配层。通过实测数据展示了Flutter应用在鸿蒙设备上的性能表现:启动速度提升15-18%,动画流畅度保持60FPS,内存管理更优。针对实际开发中的输入法兼容、长列表优化等痛点,提供了具体解决方案。最后指出Flutter

狮子也疯狂的博客 2630

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

鸿蒙UI开发中Flutter的现状与鸿蒙系统UI生态未来方向

本文系统分析了Flutter在鸿蒙生态中的定位与发展路径。Flutter作为跨平台UI框架,在鸿蒙中主要服务于存量应用迁移和多端开发场景,通过官方插件实现了基础兼容和性能优化,但仍存在原生特性适配不足等局限。鸿蒙对Flutter采取"兼容引导"策略,短期降低接入门槛,中长期通过资源倾斜强化ArkUI核心地位。ArkUI正朝着全场景协同、智能自适应、AI辅助开发等方向进化,逐步构建开放统一的UI生态体系。开发者需根据项目需求,在跨平台效率与原生体验之间权衡选择。

2501_93575716的博客 1567
上一篇: Web端选择Flutter还是前端框架?
下一篇: 利用好Android 15升级的好机会
程序员老刘·
博客等级 码龄3年 622粉丝 142原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值