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模型则专注于软件需求分析阶段和物联网设备的特征抽象与描述。两者共同为软件开发提供了有力的支持。