问题
有学员在课程“鸿蒙系统实战短视频App 从0到1掌握HarmonyOS”里面问道“老师,新版HarmonyOS 采用纯ArkTS来开发应用,那么采用XML 来设计UI是否过时?”
解答
针对这个疑问,讲师回答如下:
这个话题比较有意思。
前端页面设计,传统是 HTML+CSS+JS 三个文件,即遵循外观与行为的隔离。应用开发采用XML来设计UI页面,本质上可以理解为是类似于 HTML ,大多数语言也是依据这个传统,可以更好地将应用的外观与控制应用行为的代码隔离。
比如早期的Flash、Flex、JavaFX等富客户端,以及Android、Vue、Angular无不是如此, UI 描述位于数据处理代码外部,使得页面的可维护性大大提高。对于程序员而言,XML表述的页面,也更直观、更容易被人理解。毕竟所谓页面,就是不同布局和组件的嵌套,而XML也是元素的嵌套。
那么必须要用XML吗?其实也不是,Java早期的UI编程( Swing、SWT、AWT)都是采用纯Java语言开发的,即在Java代码里面设计要设计界面、样式,还要处理行为逻辑。当然,你在JS也能实现类似的编码风格,在JS里面写CSS+HTML。
因此,简言之,在编程界面一直就是有两套UI设计风格,一种就是“外观与行为的隔离”分开成两个文件,另外一种All-In-One“全部在一种纯语言搞定一切”。
JavaFX是后期Java才引入的技术,从这个角度看,UI引入XML是进步啊。
实际上,Android、HarmonyOS也是可以完全采用Java来设计UI,这个在咱们课程中也是有体现。特别是需要实现一些复杂的布局和组件的时候,比较适合采用纯Java API来设计UI。
ArkTS是类似于JS的编程语言,本质是扩展了TS的,引入了ArkUI。从这个角度看,这个语言也没有什么特别。HarmonyOS应用自然也是支持采用纯ArkTS API来设计UI。
这里特别强调,在新版的 HarmonyOS 里面,引入了 Super Visual的概念,表示使用低代码开发功能开发应用/服务。所谓 Super Visual,就是通过拖拉拽的方式来设计页面,页面文件类型是 .visual 文件。你打开.visual 文件可以发现,内容其实就是JSON。因此 .visual 本质也是实现类似于XML的嵌套结果。这种设计页面的方式,其实又回归到了传统的 “外观与行为的隔离”设计原则上去了。
So,你能看明白这个车子是在前进还是在倒退呢?