鸿蒙ArkTS指南—ArkUI
ArkTSArkTS是优选的主力应用开发语言,围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展。扩展能力包含声明式UI描述、自定义组件、动态扩展UI元素、状态管理和渲染控制。状态管理作为基于ArkTS的声明式开发范式的特色,通过功能不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。状态管理包括UI组件状态和应用程序状态,两者协作可以使开发者完整地构建整个应用的数据更新和
一、ArkUI简介
ArkUI(方舟UI框架)为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。
两种开发范式
针对不同的应用场景及技术背景,方舟UI框架提供了两种开发范式,分别是基于ArkTS的声明式开发范式(简称“声明式开发范式”)和兼容JS的类Web开发范式(简称“类Web开发范式”)。
-
声明式开发范式:采用基于TypeScript声明式UI语法扩展而来的ArkTS语言,从组件、动画和状态管理三个维度提供UI绘制能力。
-
类Web开发范式:采用经典的HML、CSS、JavaScript三段式开发方式,即使用HML标签文件搭建布局、使用CSS文件描述样式、使用JavaScript文件处理逻辑。该范式更符合Web前端开发者的使用习惯,便于快速将已有的Web应用改造成方舟UI框架应用。
在开发一款新应用时,推荐采用声明式开发范式来构建UI,主要基于以下几点考虑:
-
开发效率: 声明式开发范式更接近自然语义的编程方式,开发者可以直观地描述UI,无需关心如何实现UI绘制和渲染,开发高效简洁。
-
应用性能: 如下图所示,两种开发范式的UI后端引擎和语言运行时是共用的,但是相比类Web开发范式,声明式开发范式无需JS框架进行页面DOM管理,渲染更新链路更为精简,占用内存更少,应用性能更佳。
-
发展趋势:声明式开发范式后续会作为主推的开发范式持续演进,为开发者提供更丰富、更强大的能力。
图1 方舟UI框架示意图

不同应用类型支持的开发范式
根据所选用应用模型(Stage模型、FA模型)和页面形态(应用或服务的普通页面、卡片)的不同,对应支持的UI开发范式也有所差异,详见下表。
表1 支持的UI开发范式
| 应用模型 | 页面形态 | 支持的UI开发范式 |
|---|---|---|
| Stage模型(推荐) | 应用或服务的页面 | 声明式开发范式(推荐) |
| Stage模型(推荐) | 卡片 |
声明式开发范式(推荐) 类Web开发范式 |
| FA模型 | 应用或服务的页面 |
声明式开发范式 类Web开发范式 |
| FA模型 | 卡片 | 类Web开发范式 |
分层API架构与选型建议
-
声明式开发范式:采用ArkTS语言,通过声明UI结构和状态,自动驱动界面渲染。开发者只需描述“界面应该是什么样”,无需手动管理UI更新。适用于复杂度较高、团队协作的应用开发,具有高开发效率、良好性能和易维护等优势。
适用场景:复杂应用、需要高效开发和维护的项目、推荐新项目优先选用。
-
自定义能力:ArkUI支持多层次自定义能力,包括自定义组合、自定义扩展(Modifier)、自定义节点(FrameNode、RenderNode、BuilderNode)、自定义渲染等。开发者可根据业务需求选择不同层级的自定义方式,实现灵活的UI定制和扩展。
适用场景:需要特殊UI表现、底层渲染控制、与系统组件深度集成等场景。
-
NDK开发:ArkUI开发框架提供了一系列NDK接口,能够在应用中使用C和C++代码构建UI界面,包括UI组件创建、UI树操作、属性设置和事件监听等。详细使用方式可参考NDK接口概述。
适用场景:需要精细化创建和挂载UI组件、对性能有高要求的场景、业务已存在C或C++库可使用NDK能力进行对接。
二、UI开发 (ArkTS声明式开发范式)
目录
- UI开发(ArkTS声明式开发范式)概述
- 学习UI范式基本语法
- 学习UI范式状态管理
- 学习UI范式渲染控制
- 设置组件导航和页面路由
- 组件布局
- 列表与网格
- 使用文本
- 媒体展示
- 表单选择
- 添加组件
- 使用弹窗
- 几何图形绘制
- 添加交互响应
- 使用动画
- 使用自定义能力
- UI国际化
- 无障碍与适老化
- 主题设置
- UI系统场景化能力
UI开发(ArkTS声明式开发范式)概述
基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建应用UI所必需的能力,主要包括:
-
ArkTS
ArkTS是优选的主力应用开发语言,围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展。扩展能力包含声明式UI描述、自定义组件、动态扩展UI元素、状态管理和渲染控制。状态管理作为基于ArkTS的声明式开发范式的特色,通过功能不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。状态管理包括UI组件状态和应用程序状态,两者协作可以使开发者完整地构建整个应用的数据更新和UI渲染。ArkTS语言的基础知识请参考初识ArkTS语言。
-
布局
布局是UI的必要元素,它定义了组件在界面中的位置。ArkUI框架提供了多种布局方式,除了基础的线性布局、层叠布局、弹性布局、相对布局、栅格布局外,也提供了相对复杂的列表、宫格、轮播。
-
组件
组件是UI的必要元素,形成了在界面中的样子,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。系统组件包括按钮、单选框、进度条、文本等。开发者可以通过链式调用的方式设置系统组件的渲染效果。开发者可以将系统组件组合为自定义组件,通过这种方式将页面组件化为一个个独立的UI单元,实现页面不同单元的独立创建、开发和复用,具有更强的工程性。
-
页面路由和组件导航
开发者可以将应用的用户界面设计为多个功能页面NavDestination,页面通过栈结构管理,并通过导航容器Navigation完成页面间的调度管理如跳转、回退等操作,以实现应用内的功能解耦。
-
图形
方舟开发框架提供了多种类型图片的显示能力和多种自定义绘制的能力,以满足开发者的自定义绘图需求,支持绘制形状、填充颜色、绘制文本、变形与裁剪、嵌入图片等。
-
动画
动画是UI的重要元素之一。优秀的动画设计能够极大地提升用户体验,框架提供了丰富的动画能力,除了组件内置动画效果外,还包括属性动画、显式动画、自定义转场动画以及动画API等,开发者可以通过封装的物理模型或者调用动画能力API来实现自定义动画轨迹。
-
交互事件
交互事件是UI和用户交互的必要元素。方舟开发框架提供了多种交互事件,除了触摸事件、鼠标事件、键盘按键事件、焦点事件等通用事件外,还包括基于通用事件进行进一步识别的手势事件。手势事件有单一手势如点击手势、长按手势、拖动手势、捏合手势、旋转手势、滑动手势,以及通过单一手势事件进行组合的组合手势事件。
-
自定义能力
自定义能力是UI开发框架提供给开发者对UI界面进行开发和定制化的能力。包括:自定义组合、自定义扩展、自定义节点和自定义渲染。
三、UI开发 (基于NDK构建UI)
四、UI开发 (兼容JS的类Web开发范式)
不介绍
五、UI开发调试调优
六、窗口管理
七、屏幕管理
更多推荐




所有评论(0)