原生应用开发是为特定操作系统平台构建应用程序,依赖平台特定的工具和编程语言,如HarmonyOS SDK、ArkTS等。原生应用程序的优势在于硬件密集型操作的高性能,以及复杂的安全功能特性。
作为原生应用开发的替代方案,跨平台应用开发是指使用单一代码库创建可在多个操作系统上运行的移动应用程序的方法。除了可以缩短开发时间和降低成本外,跨平台应用开发的意义在于它能够快速地向更广泛的受众展示产品,并最大限度地提高市场渗透率。常用的跨平台开发框架有Flutter、React Native(RN)、Kotlin Multiplatform(KMP)和Compose Multiplatform(CMP)、Cordova、Electron和CEF等。
鸿蒙生态将持续构建跨平台开发框架技术生态,为开发者根据自己实际情况选择不同跨平台框架开发鸿蒙应用程序提供帮助。
Flutter以Dart语言与自渲染引擎为核心,实现接近原生的性能表现。Flutter正在被越来越多的开发者和组织使用,并且它是完全免费、开源的。
Flutter for OpenHarmony解决方案是基于源社区Flutter SDK的鸿蒙平台的扩展实现,致力于将Flutter的开发体验带入鸿蒙生态,详见https://gitcode.com/CPF-Flutter。目前已针对Flutter v3.7.12、v3.22.0、v3.27.4、v3.35.7、v3.41.9版本进行了鸿蒙平台适配。您可以在https://gitcode.com/CPF-Flutter/flutter_flutter/wik 中了解更多关于对Flutter的鸿蒙适配版本的说明。建议开发者优先使用最新稳定版本,以获得更完整的功能支持与持续的问题修复。
此外,Flutter for OpenHarmony解决方案还包括框架配套的组件库的适配。包括:1)基于Flutter源社区官方插件库(flutter/packages)进行扩展,新增对鸿蒙平台的兼容适配,详见https://gitcode.com/CPF-Flutter/flutter_packages;2)社区三方库的适配,https://gitcode.com/CPF-Flutter/docs/blob/main/ThirdpartyLibrarites.md汇总了已适配的三方库、已适配的纯dart库以及正在适配中的三方库,覆盖了权限管理、UI组件、设备信息、位置服务、媒体处理等多个功能领域,为开发者提供了丰富的选择。
React Native(以下简称RN)是一个基于JavaScript和React的开源框架,通过DSL描述UI并采用原生组件渲染,以提升性能与原生API调用体验。
React Native for OpenHarmony解决方案是在RN框架的基础上,对于鸿蒙平台的扩展实现,致力于将RN的开发体验带入鸿蒙生态,详见https://gitcode.com/CPF-RN/ohos_react_native。目前已针对RN v0.72、v0.77、v0.82、v0.84版本进行了鸿蒙平台适配,您可以在https://gitcode.com/CPF-RN/ohos_react_native/blob/main/docs/en/06-community/roadmap.md 中了解更多关于对RN的鸿蒙适配版本的说明。
同样,React Native for OpenHarmony解决方案还包括了框架配套的组件库的适配,NPM公仓坐标“@react-native-ohos”,详见https://gitcode.com/CPF-RN/usage-docs/blob/master/zh-cn/README.md。
Kotlin Multiplatform(KMP)的核心理念是“共享逻辑、保持原生”。通过多后端编译体系、expect/actual声明机制、C语言互操作能力等,实现跨平台业务逻辑共享。而Compose Multiplatform (CMP)是基于KMP延伸出的、用于跨平台共享声明式界面(UI)的配套框架。
KMP/CMP for OpenHarmony解决方案是在KMP/CMP框架的基础上,对于鸿蒙平台的扩展实现,致力于将KMP和CMP的开发体验带入鸿蒙生态,详见https://gitcode.com/CPF-KMP-CMP。目前已针对KMP v2.2.21和CMP v1.9.2进行了鸿蒙平台适配,包括统一渲染、自渲染、ArkTS与Kotlin跨语言互相调用、鸿蒙CAPI封装Kotlin库、KMP编译鸿蒙产物、DFX能力、CMP多设备能力与无障碍功能、KMP/CMP鸿蒙开发工具链等特性。由社区开发者和核心贡献者共同开发和维护。
Cordova(前身是PhoneGap)采用经典的混合式架构,核心是Web视图容器+原生桥接层。Cordova框架本身不内置过多原生功能,而是通过插件机制,让开发者按需引入相机、相册、定位、传感器等各类原生能力插件,既保证框架的轻量性,又能满足多样化的功能需求,同时支持开发者自定义插件。
Cordova for OpenHarmony解决方案是在Apache Cordova框架的基础上,对于鸿蒙平台的扩展实现,致力于将Cordova的开发体验带入鸿蒙生态,让开发者能够利用现有的HTML、CSS和JavaScript技能,轻松构建高性能、原生体验的鸿蒙应用。整体解决方案包括三部分:1)框架主工程,基于源社区v14.0.1进行了适配;2)命令化工具,基于源社区v13.0.0进行了适配;3)框架配套的插件适配,目前已支持70多个插件在鸿蒙平台使用。更多信息详见https://gitcode.com/CPF-Cordova。
Ionic是一个开源的UI工具包,用于使用Web技术构建跨平台的移动和Web应用程序。Ionic坚信HTML、CSS和JavaScript是开发效率最高、生态最庞大的UI构建方式。它不试图用自定义渲染引擎(如Flutter)或原生UI映射(如RN),而是充分利用现代浏览器/WebView的渲染能力,将Web开发体验直接延伸到移动端。
Ionic for OpenHarmony解决方案是在Ionic框架的基础上,对于鸿蒙平台的扩展实现,致力于将Ionic的开发体验带入鸿蒙生态。整体解决方案包括三部分:1)核心框架库openHarmony-capacitor提供Capacitor框架的所有基础能力;2)capacitor-cli命令行工具,提供框架及插件的命令行操作环境;3)Capacitor配套插件鸿蒙适配,目前已支持40多个插件在鸿蒙平台上使用。更多信息详见https://gitcode.com/CPF-Ionic。
Chromium是一个开源浏览器项目,旨在为所有互联网用户构建更安全、更快速、更稳定的网络体验。它是Google Chrome及其他许多浏览器(如Microsoft Edge、Opera)的基础。Chromium的模块化设计和强大的底层能力也使其成为开发特定类型桌面应用、嵌入式系统和工具的理想选择。
Chromium for OpenHarmony解决方案是基于Chromium对鸿蒙平台的扩展实现。目前已针对Chromium v114、v132、v138、v144版本进行了鸿蒙平台适配。鸿蒙生态将持续投入资源对Chromium for OpenHarmony解决方案进行维护、升级和优化,及时修复问题,并根据平台发展和开发者反馈引入新特性,确保其长期的生命力和竞争力。更多信息详见https://gitcode.com/openharmony-tpc/chromium_src/tree/master和https://gitcode.com/CPF-Chromium ,以及社区相关技术文章(如Chromium框架HarmonyOS开发指导等)。
CEF(Chromium Embedded Framework,以下简称CEF)由Marshall Greenblatt于2008 年创立,基于Google Chromium项目,它是一个将Chromium嵌入到其他应用程序的开源框架。CEF提供简单的API,允许开发者将完整的浏览器功能集成到现有应用中。
CEF for OpenHarmony解决方案是基于CEF框架对OpenHarmony平台的扩展实现,致力于将CEF的开发体验带入鸿蒙生态。目前已针对CEF v132、v138版本进行了鸿蒙平台适配。鸿蒙生态将持续投入资源对CEF for OpenHarmony解决方案进行维护和升级演进。更多信息详见https://gitcode.com/openharmony-tpc/chromium_cef ,或相关技术文章(如CEF框架HarmonyOS开发指导等)。
Electron框架是一个使用Web技术(HTML/CSS/JavaScript)构建跨平台桌面应用的框架。它结合了Chromium和Node.js,允许开发者用前端技术开发原生应用。
Electron for OpenHarmony解决方案是在Electron框架的基础上,对于鸿蒙平台的扩展实现,致力于将Electron的开发体验带入鸿蒙生态,助力开发者更高效、更稳定地构建鸿蒙应用。目前已针对Electron v34、v37版本进行了鸿蒙平台适配。更多信息详见https://gitcode.com/openharmony-sig/electron 和https://gitcode.com/CPF-Electron/Electron,以及社区相关技术文章(如Electron框架HarmonyOS开发指导等)。
Qt是一个跨平台的应用程序开发框架,聚焦于桌面应用程序开发。Qt拥有强大的开发工具(如Qt Creator IDE)和两种UI构建范式(传统的Widgets和声明式Quick)。一般用于追求高性能和原生体验、涉及复杂桌面软件或工业嵌入式界面场景。
通过 QPA(Qt Platform Abstraction)插件机制实现Qt框架与HarmonyOS系统的对接。开发者编写的依然是标准Qt C++代码,QPA插件在底层完成平台适配,无需编写ArkTS 代码。Qt应用在HarmonyOS上以共享库(.so)+ ArkUI壳工程的形态运行。系统启动 UIAbility后,通过Node-API桥接加载应用.so并调用标准C++ main()函数,QPA插件自动将Qt窗口嵌入HarmonyOS WindowStage,XComponent提供原生渲染表面。目前Qt框架v5.12.12和v5.15.16已支鸿蒙平台,并且Qt 5.12.12鸿蒙版源代码已可开放获取,详见https://wiki.qt.io/Qt5.12.12_Open_Source_Release_for_HarmonyOS_zh。
Taro是由京东凹凸实验室主导开发的一个开放式跨平台解决方案,支持使用React、Vue、Nerv等框架来开发各种小程序、H5和RN 等应用。Taro的鸿蒙方案也是由京东团队研发的,可以让开发者以熟悉的方式来开发鸿蒙应用,大幅降低鸿蒙应用开发门槛。更多信息详见https://docs.taro.zone/docs/,以及相关技术文章(如使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南)。
uni-app是由DCloud主导开发的一个使用Vue.js开发前端应用的框架,开发者编写一套代码,可发布到iOS、Android、鸿蒙Next、Web(响应式)、以及各种小程序(微信/支付宝/百度/抖音/飞书/QQ/快手/钉钉/淘宝/京东/小红书)、快应用、鸿蒙元服务等多个平台。关于uni-app的更详细介绍,请参考https://uniapp.dcloud.net.cn/。
Lynx是由TikTok主导的一系列开源技术,旨在帮助开发者利用现有的Web技能,从单一代码库中为移动端和Web端创建原生UI。Lynx专为多样化的使用场景和丰富的交互性而设计,能够为像TikTok这样的大型应用提供生动且引人入胜的用户界面。从Lynx 3.4 版本开始开源了对OpenHarmony平台的支持。关于Lynx的更详细介绍,请参考https://github.com/lynx-family/lynx。
Hippy是TDSF腾讯端框架(Tencent Device-oriented Service Framework)下的开源跨平台开发解决方案。Hippy可以理解为一个精简版的浏览器,从底层做了大量工作,抹平了iOS、Android、OpenHarmony三端差异,提供了接近Web的开发体验,目前上层支持了Reac和Vue两套界面框架,前端开发人员可以通过Hippy将前端代码转换为终端的原生指令,进行原生终端App的开发。同时,Hippy从底层进行了大量优化,在启动速度、渲染性能、动画速度、内存占用、包体积等方面都提供了业内顶尖的性能表现。关于Hippy的更详细介绍,请参考https://doc.openhippy.com/#/。
ArkUI-X是将鸿蒙应用开发框架扩展到了多个OS平台:目前支持OpenHarmony、HarmonyOS、Android、iOS,后续会逐步增加更多平台支持。开发者基于一套主代码,就可以构建支持多平台的精美、高性能应用。ArKUI-X框架关键特征如下:简洁自然的声明式语法,高效的渲染管线以及平台一致性的渲染机制,高效的方舟编译器以及运行时,统一的跨平台API能力集以及扩展机制,动态化特性等。关于ArkUI-X更详细的介绍,请参考:https://gitcode.com/arkui-x。