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

相关推荐
SameX2 小时前
HarmonyOS Next 安全生态构建与展望
前端·harmonyos
SameX2 小时前
HarmonyOS Next 打造智能家居安全系统实战
harmonyos
Random_index10 小时前
#Uniapp篇:支持纯血鸿蒙&发布&适配&UIUI
uni-app·harmonyos
鸿蒙自习室13 小时前
鸿蒙多线程开发——线程间数据通信对象02
ui·harmonyos·鸿蒙
SuperHeroWu716 小时前
【HarmonyOS】鸿蒙应用接入微博分享
华为·harmonyos·鸿蒙·微博·微博分享·微博sdk集成·sdk集成
zhangjr057518 小时前
【HarmonyOS Next】鸿蒙实用装饰器一览(一)
前端·harmonyos·arkts
诗歌难吟4641 天前
初识ArkUI
harmonyos
SameX1 天前
HarmonyOS Next 设备安全特性深度剖析学习
harmonyos
郭梧悠1 天前
HarmonyOS(57) UI性能优化
ui·性能优化·harmonyos
郝晨妤2 天前
鸿蒙原生应用开发元服务 元服务是什么?和App的关系?(保姆级步骤)
android·ios·华为od·华为·华为云·harmonyos·鸿蒙