跨平台开发鸿蒙原生应用
uniapp for HarmonyOS
uni-app
uni-app
是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到HarmonyOS、iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。
uni-app
在开发者数量、案例、跨端抹平度、扩展灵活性、性能体验、周边生态、学习成本、开发成本等8大关键指标上拥有更强的优势。
功能框架图
uni-app鸿蒙化版本信息
- HBuilderX 版本需 ≥ 4.24
- HBuilderX 4.24+ 要求 DevEco-Studio 5.0.3.400+,HBuilderX 4.31+ 要求 DevEco-Studio 5.0.3.800+。
- 鸿蒙系统版本 API 12 以上 (DevEco-Studio有内置鸿蒙模拟器)
- 鸿蒙开发只支持Vue3,不支持Vue2、不支持plus、但支持nvue
Flutter for OpenHarmony
Flutter介绍
Flutter是谷歌的高性能、跨端UI框架,可以通过一套代码,支持iOS、Android、Windows/MAC/Linux等多个平台,且能达到原生性能。 Flutter也可以与平台原生代码进行混合开发。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
Flutter架构
Flutter鸿蒙化版本信息
目前基于Flutter官方社区3.22.0版本构建
参考
React Native for OpenHarmony
React Native介绍
React Native 是一个基于 JavaScript 和 React 框架的开源框架,用于构建原生移动应用程序。它允许开发者使用 React 的组件模型和声明式编程风格来构建跨平台的移动应用。
主要特点和详细介绍:
- 跨平台性:开发者只需要编写一次代码,就可以在 iOS、Android、React Native DOM 等不同平台上运行应用程序,从而提高了开发效率和代码复用率。
- 基于 React:React Native 基于 React 框架,采用了 React 的组件模型和虚拟 DOM 技术。
- 原生性能:React Native 应用程序的业务逻辑是使用 JavaScript 编写的,但它可以调用原生平台提供的 API 和使用原生 UI 组件。这使得 React Native 应用程序可以实现接近原生应用的性能和用户体验,包括流畅的滚动、快速的响应时间。
- 热更新:React Native 支持热更新,整个应用程序可以不经过重新编译直接将更新后的 JavaScript 代码推送到设备上。
- 灵活性和可扩展性:具有很高的灵活性和可扩展性,开发者可以根据自己的需求选择合适的第三方库和工具,来扩展和增强应用程序的功能。
RNOH架构
如图,React Native for OpenHarmony 在 React Native 的新架构(0.68 以及之后的版本)的基础上,进行了鸿蒙化的适配。按照功能可以进行如下的划分:
- RN 应用代码:开发者实现的业务代码。
- RN 库代码:在 React Native 供开发者使用的组件和 API 的封装与声明。
- JSI(JavaScript Interface):JavaScript 与 CPP 之间进行通信的 API。
- React Common:所有平台通用的 CPP 代码,用于对 RN 侧传过来的数据进行预处理。
- OpenHarmony 适配代码:接收并处理 React Common 传过来的数据,对接原生的代码,调用 ArkUI 的原生组件与 API。主要包括了两个部分:分别是 TurboModule 与 Fabric。
- OS 代码:对接系统底层功能,根据适配层代码传过来的数据进行渲染,或完成对应的功能。
React Native 鸿蒙化版本信息
当前React Native鸿蒙版本基于社区RN 0.72.5进行适配,发布版本信息如下:
名称 | 版本号 |
---|---|
react-native-harmony | 0.72.38 |
react-native-harmony-cli | 0.0.27 |
rnoh | 5.0.0.715 |
rnoh_release | 5.0.0.715 |
配套IDE、SDK版本和手机ROM:
名称 | 版本号 |
---|---|
DevEco Studio | DevEco Studio 5.0.3.906 |
HarmonyOS SDK | HarmonyOS SDK 5.0.0.71(SP1) |
手机ROM | ALN-AL00 205.0.0.102(SP2C00E73R4P17) ALN-AL80 205.0.0.102(SP2C00E73R4P17) BRA-AL00 205.0.0.102(SP2C00E73R4P17 |
参考
Taro for OpenHarmony
Taro 介绍
Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ / 飞书 / 快手 小程序 / H5 / RN 等应用。
Taro 鸿蒙化版本信息
- Taro v4.0.0-beta.0
- OpenHarmony ApI10支持
ArkUI-X
ArkUI-X介绍
ArkUI是一套构建分布式应用的声明式UI开发框架。它具备简洁自然的UI信息语法、丰富的UI组件、多维的状态管理,以及实时界面预览等相关能力,帮助您提升应用开发效率,并能在多种设备上实现生动而流畅的用户体验。详情可参考ArkUI框架介绍
ArkUI-X进一步将ArkUI扩展到了多个OS平台:目前支持OpenHarmony、HarmonyOS、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码,就可以构建支持多平台的精美、高性能应用
技术架构
ArkUI跨平台框架整体架构如下图所示,详细设计请参考ArkUI跨平台设计总体说明。
快速入门
作者:坚果
来源:坚果派
著作权归作者所有,禁止任何未经授权的个人或组织以任何形式将本案例集及其附属资料、创新、创意、架构设计、算法、衍生作品等用于任何商业目的、盈利活动、各类竞赛(比赛)、直播教学、录播教学、线下课程、书籍编写、教材编写、会议、培训、公益活动、项目课题、毕业设计、毕业论文、学术论文等。商业转载请联系作者获得授权,非商业转载请注明出处。否则追究相关责任。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。