做鸿蒙原生适配这件事,真正下场的前端,大家应该都能感觉到,情绪很“暴躁”。
现在有不少团队要同时维护 Android / iOS / HarmonyOS 多端版本,开发节奏超级紧张。前端在适应 ArkTS 和 ArkUI 的新范式,精力更多放在逻辑和系统适配上;设计侧如果依然沿用传统的标注和切图方式,带来的结果就是
UI 看起来完整,但并不好用。
传统那套设计、标注、开发流程,在鸿蒙这种新 UI 范式下,其实有点跟不上节奏,成本也越来越高。因此,
UI 生成鸿蒙代码(D2C工具)
成了刚需,让前端不用再把大量时间耗在纯 UI 对齐上了。这篇文章就聊一聊,怎么把我们手里的UI设计稿,直接变成鸿蒙能跑的代码。
UI 生成鸿蒙代码,其实是 D2C(Design to Code)的一种能力,
将设计稿转换成为前端代码
。本质上,它不是在切图,而是在“翻译结构”。比如,设计稿里的一组纵向信息,不是被简单翻译成样式,而是被识别成 Column;横向排列的按钮,会对应成 Row;间距、圆角、颜色、阴影,都会变成明确的属性。
鸿蒙这边的技术门槛其实更高。因为 ArkUI 是声明式 UI,用的是 ArkTS,逻辑和传统的 HTML / CSS 并不完全一致。所以
有个要敲黑板的注意点
:如果你想让工具生成能用的代码,必须养成使用自动布局的习惯。图层是否规整、容器是否明确、组件是否复用,都会直接体现在生成的 ArkUI 结构里。
我看过很多设计师的源文件,图层满天飞,全靠肉眼对齐。这种稿子丢给 D2C 工具,生成的代码全是绝对定位,开发根本没法维护。只有当你把图层结构严格按照“父子级、横纵向”整理清晰,这样 UI 生成的 ArkUI 代码才会结构干净、嵌套合理。设计稿干不干净,结构清不清楚,基本就决定了代码能不能用。
说实话,在鸿蒙项目普遍赶进度的情况下,手动写 UI 代码并不现实,团队一定需要工具介入。但市面上大多数 D2C 工具,并不是真的支持鸿蒙 ArkUI。很多工具生成的,依然是 Web / React / Flutter 语义下的 UI 描述,只能当参考。
真正支持 UI 生成鸿蒙代码的 D2C 工具不多,但一旦用对了,流程会非常顺。我自己接触下来,国内的设计协作平台
Pixso 和墨刀
,是对鸿蒙适配最快、也最深入的两类 D2C 代表。下面简单拆一下实际怎么用。
如果你的需求是高保真UI交付,直接对接开发落地,那Pixso和墨刀设计目前用起来很顺手。这两个平台都可以做专业UI设计,自动布局、组件变体、变量系统功能都有的。在设计画板右侧切换到代码模式后,你会发现它不仅仅是给出了CSS,而是有一个专门的 D2C 选项。
你会看到它自动把你的设计翻译成了标准的鸿蒙结构,下载代码包,直接发给开发。
我也测过还原度,像渐变色、非标准圆角、甚至一些复杂的阴影参数,生成的 ArkUI 代码基本能做到还原。开发只要把这就段代码粘贴进DevEco Studio,微调一下margin,效果立马就出来了。
而且还要说明一点
:Figma、Sketch、Adobe XD的设计文件都可以导入到这两个平台,导入后也可以用 D2C 的功能转换成鸿蒙代码。这一点是蛮方便的,不局限在它们自己的设计板块里。
光有工具不够,这里有几个我踩过坑总结出来的经验,能让你显得更专业:
第一,命名规范很重要。
图层命名尽量用英文,结构清晰,生成的类名和变量名才不会一团乱。别再用Rectangle 1、Group 99这种名字了。在Pixso/墨刀里把图层名改成英文,比如user_avatar、login_btn。生成的代码里,这些就会自动变成类名或ID,开发看到这样的命名,协作效率会大大提高。
第二,尽量组件化。
在 Pixso 或墨刀设计里把可复用模块做成组件,不要每一个页面都重画。把通用的头部、底部做成Symbol(组件)。开发只要写一次引用就行,生成的代码复用性会高很多。
第三,别忽略多端适配。
鸿蒙是多设备体系(手机、平板、折叠屏),设计阶段如果用了响应式约束,生成的 ArkUI 代码适配性会好很多。
工具再怎么变,核心目标之一,就是让设计师少做一些重复、消耗精力的事。当设计开始直接影响代码结构,不只是视觉效果,那设计师在团队里的角色,也会发生变化。尤其在鸿蒙生态里,这种变化会更明显。UI 生成鸿蒙代码,不只是为了帮开发省事,更是在这个原生时代,让设计师的话语权变得更重一点,也是在拥抱一种新的协作方式。