1.1 鸿蒙3.0 App开发技术选型 原创 精华
目前HarmonyOS 3.0最新版本为Beta2,主要支持Java UI和ArkUI(方舟开发框架)进行鸿蒙App开发,而ArkUI支持基于JS扩展的类Web开发范式和基于TS扩展的声明式开发范式(即eTS)。鸿蒙开源版本OpenHarmony在2022年3月31日已正式发布3.1 release版,仅支持Javascript和eTS两种方式。
本节先基于最简单的Hello World案例,增加一个按钮,点击按钮改变文字内容。直观对比感受下这三种开发方式的差异。[源码地址:https://gitee.com/cloudev/harmonyos3/tree/master/1.1]
1.1.1 Java UI的开发方式
初始代码:
Java代码(\1.1\JavaUI\Hello\entry\src\main\java\top\cloudev\hello\slice\MainAbilitySlice.java)
xml页面(\1.1\JavaUI\Hello\entry\src\main\resources\base\layout\ability_main.xml)
功能实现:
在xml页面中加入按钮:
在graphic目录增加一个胶囊按钮背景(\resources\base\graphic\btn.xml),形状为矩形,圆角为100,颜色为蓝色:
然后在java代码中加入按钮点击事件代码,实现点击按钮后文本"Hello World"变为"Hello Java UI":
1.1.2 Js UI的开发方式
Js UI的Hello World页面由三个文件组成,分别是index.hml、index.css和index.js(\1.1\JsUI\Hello\entry\src\main\js\default\pages\index)。
初始代码:
index.hml(页面布局)
index.css(样式)
index.js(逻辑代码)
功能实现:
index.hml中增加按钮:
index.css中增加样式:
index.js中增加点击事件代码:
1.1.3 eTS的开发方式
eTS的Hello World页面只需要一个页面(\1.1\ArkUI\Hello\entry\src\main\ets\default\pages\index.ets)。
初始代码:
添加按钮的布局、样式及逻辑代码也非常简单,对上述代码稍作调整即可。
功能实现:
很显然,这三种开发方式中,Java UI的方式代码最为复杂,Js UI的方式次之,而华为最新推出的eTS方式,代码最为精简,阅读自然。性能方面,华为官方称,ArkUI可获得原生应用的性能体验,所以我们无须担心。在华为的方舟开发框架概述中有一段关于Js UI和eTS的比较和建议:
类Web开发范式,采用经典的HML、CSS、JavaScript三段式开发方式。使用HML标签文件进行布局搭建,使用CSS文件进行样式描述,使用JavaScript文件进行逻辑处理。 主要适用于界面较为简单的中小型应用开发。
声明式开发范式,采用TS语言并进行声明式UI语法扩展,从组件、动效和状态管理三个维度提供了UI绘制能力。UI开发更接近自然语义的编程方式,让开发者直观地描述UI界面,不必关心框架如何实现UI绘制和渲染,实现极简高效开发。同时,选用有类型标注的TS语言,引入编译期的类型校验,更适用大型的应用开发。
声明式开发范式无需JS Framework进行页面DOM管理,渲染更新链路更为精简,占用内存更少,因此更推荐开发者选用声明式开发范式来搭建应用UI界面。
很显然,Java UI开发方式主要是适应原来做安卓开发的同学,而Js UI开发方式主要适应原来做Vue、小程序开发的同学,让他们更快融入鸿蒙开发生态。然而,这只是权宜之计,最终,华为主推的鸿蒙开发语言是基于eTS的ArkUI开发方式。
本教程将基于HarmonyOS 3.0 Beta版演示如何高效开发ArkUI(eTS)的鸿蒙App。
终于看到对比讲解了,感谢分享!
不客气
后面的教程会基于ArkUI eTS语言讲解。