ArKUI (方舟UI框架)介绍

ArkUI(方舟UI框架)为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。

一、ArKUI 开发框架介绍

  • 开发模型层

提供了 UI开发范式的基础语言规范, 并提供内置的UI组件、布局和动画, 提供了多种状态管理机制,为应用开 发者提供一系列接口支持。

  • 引擎层

后端引擎提供了兼容不同开发范式的 UI渲染管线,提供多种基础组件、布 局计算、动效、交互事件,提供了状 态管理和绘制能力。提供了高效的绘 制能力,将渲染管线收集的渲染指令, 绘制到屏幕能力

  • 平台抽象层

提供了针对不同操作系统渲染层的适 配,可抹平不同平台的接口差异,实 现ArkUI框架的多平台一致性

二、基本概念介绍

  • 方舟UI框架(简称ArkUI): 为HarmonyOS应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。

  • ArkTS: 是UI开发语言,基于Typescript (简称TS)语言扩展而来,是TS的超集。扩展能力包含各种装饰器、自定义组件、UI描述机制。

  • 声明式开发范式: 基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建HarmonyOS应用UI所必需的能力。

  • UI: 即用户界面。开发者可以将应用的用户界面设计为多个功能页面,每个页面进行单独的文件管理,并通过页面路由API完成页面间的调度管理如跳转、回退等操作,以实现应用内的功能解耦。

  • 组件: UI构建与显示的最小单位,如列表、网格、按钮、单选框、进度条、文本等。开发者通过多种组件的组合,构建出满足自身应用诉求的完整界面。

三、 声明式UI和命令式UI的区别

1、命令式 UI
  • 设计思想: 其更加注重的是实现的具体步骤和过程。
  • 代码风格: 侧重于编写细的指令和操作来控制用户界面的构建和交互。
  • 代码可维护性: 复杂、冗长,因为需要明确指定每个步骤和操作的细节来告诉计算机怎么去实现。
2、声明式UI
  • 设计思想: 仅注重描述界面的最终实现的结果,而不关心实现它的过程。
  • 代码风格: 使用更抽象、更高级的语法,通常使用配置、声明或描述来构建用户界面。
  • 代码可维护性: 易于维护,因为它的代码更清晰、简洁,易于理解。

四、 两种开发范式

1、声明式开发范式(基于ArkTS的声明式开发范式

  • 采用基于TypeScript声明式UI语法扩展而来的ArkTS语言,从组件、动画和状态管理三个维度提供UI绘制能力。

  • 数据驱动UI界面更新

    2、类Web开发范式(兼容JS的类Web开发范式

  • 采用经典的HML、CSS、JavaScript三段式开发方式,即使用HML标签文件搭建布局、使用CSS文件描述样式、使用JavaScript文件处理逻辑。该范式更符合于Web前端开发者的使用习惯,便于快速将已有的Web应用改造成方舟UI框架应用。

  • 通过单向数据绑定进行关联的,当数据发生变化的时候UI界面会自动发生变化。

五、 为什么新应用推荐采用声明式开发范式来构建UI?

  • 开发效率: 声明式开发范式更接近自然语义的编程方式,开发者可以直观地描述UI,无需关心如何实现UI绘制和渲染,开发高效简洁。
  • 应用性能: 如下图所示,两种开发范式的UI后端引擎和语言运行时是共用的,但是相比类Web开发范式,声明式开发范式无需JS框架进行页面DOM管理,渲染更新链路更为精简,占用内存更少,应用性能更佳。
  • 发展趋势:声明式开发范式后续会作为主推的开发范式持续演进,为开发者提供更丰富、更强大的能力。

六、不同应用类型支持的开发范式

根据所选用应用模型(Stage模型、FA模型)和页面形态(应用或服务的普通页面、卡片)的不同,对应支持的UI开发范式也有所差异,详见下表。

表1 支持的UI开发范式

应用模型 页面形态 支持的UI开发范式
Stage模型(推荐) 应用或服务的页面 声明式开发范式(推荐)
卡片 声明式开发范式(推荐)类Web开发范式
FA模型 应用或服务的页面 声明式开发范式类Web开发范式
卡片 类Web开发范式

七、Stage模型、FA模型

1、 Stage模型

定义

Stage模型是HarmonyOS NEXT版本主推且会长期演进的模型。该模型提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的"舞台",因此称这种应用模型为Stage模型。在Stage模型中,多个应用组件共享同一个ArkTS引擎实例,应用组件之间可以方便地共享对象和状态,同时减少复杂应用运行对内存的占用。

特点

  • 基于过程:Stage模型将软件开发过程划分为多个阶段,每个阶段都有明确的目标和任务,适用于软件开发的实施阶段。
  • 资源共享:在Stage模型中,应用组件之间可以方便地共享对象和状态,提高资源利用效率。
  • 分布式场景:开发者通过Stage模型能够更加便利地开发出分布式场景下的复杂应用。

应用场景

Stage模型主要用于HarmonyOS等操作系统的应用开发,特别是针对需要高效资源利用和分布式场景的应用。

2、FA模型

定义

FA模型,即Feature Abstraction Model(特征抽象模型),是HarmonyOS开发中的重要组成部分。它是一种描述软件系统的特征和功能的模型,用于帮助开发者更好地理解系统的本质,并指导系统的开发和设计。

特点

  • 基于需求:FA模型主要用于软件需求分析阶段,通过对用户需求进行分析,确定软件开发的功能和特性。
  • 统一抽象接口:FA模型提供了物联网设备的统一抽象接口,使得开发者可以更加方便地使用设备的各种功能。
  • 增强开发效率:通过定义特征的名称、功能、参数等信息,FA模型简化了设备功能的描述过程,提高了开发效率。

应用场景

FA模型广泛应用于物联网设备的开发过程中,特别是在需要快速响应市场需求、提高开发效率的场景下。

综上所述,Stage模型和FA模型在软件开发和评估中扮演着不同的角色。Stage模型侧重于软件开发的实施阶段和分布式场景下的应用开发,而FA模型则专注于软件需求分析阶段和物联网设备的特征抽象与描述。两者共同为软件开发提供了有力的支持。

相关推荐
sanzk3 小时前
华为鸿蒙应用开发
华为·harmonyos
SoraLuna8 小时前
「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
macos·ui·harmonyos
ClkLog-开源埋点用户分析9 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
mg6689 小时前
鸿蒙系统的优势 开发 环境搭建 开发小示例
华为·harmonyos
lqj_本人9 小时前
鸿蒙next选择 Flutter 开发跨平台应用的原因
flutter·华为·harmonyos
lqj_本人9 小时前
使用 Flutter 绘制一个棋盘
harmonyos
lqj_本人12 小时前
Flutter&鸿蒙next 状态管理框架对比分析
flutter·华为·harmonyos
青瓷看世界14 小时前
华为HarmonyOS打造开放、合规的广告生态 - 插屏广告
华为·harmonyos·广告投放
青瓷看世界14 小时前
华为HarmonyOS借助AR引擎帮助应用实现虚拟与现实交互的能力2-管理AR会话
华为·ar·harmonyos·虚拟现实
2301_7955586414 小时前
鸿蒙的进化史
华为·harmonyos