写点什么

AI 来袭,前端智能化的一次尝试

  • 2019-08-10
  • 本文字数:1776 字

    阅读完需:约 6 分钟

AI来袭,前端智能化的一次尝试


本文介绍了淘宝 D2C 智能团队研发的 imgcook 产品:通过智能化手段将各种图像一键生成可维护的 UI 视图代码,切实提高开发的开发效率,并助力开发、设计师、测试的高效协作。


这几年来 AI 来势汹汹,在部分领域应用也逐渐成熟。前端发展至今,我们也有许多成熟的前端解决方案代码,有大量的设计稿,我们是否能够结合智能化的能力将一个 Design 变成一个 Code (设计转代码,简称 D2C)来提效,让前端从一个资源型的角色中解放出来将精力投入到前端其他专业领域?淘宝 D2C 智能团队这两年围绕这个方向也做了许多的探索,最终将 D2C 的能力都承载到了 imgcook 这个产品上。

imgcook 是什么?

imgcook 是专注以各种图像(Sketch/PSD/静态图片)为原材料烹饪的匠心大厨,通过智能化手段将各种图像一键生成可维护的 UI 视图代码,期望此 imgcook (图像大厨) 未来能够成为一位 P5 级别的重构工程师,能切实提高开发的开发效率,并助力开发、设计师、测试的高效协作,我们期望做到:


  • 100% 还原【设计师再也不用还原走查了】

  • 100% 兼容【测试再也不用适配样式了】

  • 一键上线【开发再也不用切图写样式了】


愿景:能够高度还原各种图像,释放 UI 开发生产力,让你关注更具挑战性的事情!


为什么做 imgcook?

对于 UI 还原而言,早在很多年前,类似的从设计稿中还原生成静态 UI 场景的解决方案也都涌现过,比如一些设计稿标注工具(如 Marketch),又或者说目前的一些可视化建站平台也都能够在搭建完后直接产出线上页面,那么 imgcook 的优势体现在哪?


我们回到 UI 还原主题上,当我们说图像生成代码的时候,我们关心的不仅仅是生成 UI 的还原度,也关心生成的代码是否合理、可维护,如果生成的代码属于不可读不可维护的快餐代码,开发使用上再对其进行二次开发就会显得极为艰难,而往往后者的难度相比前者更甚,如果需要在生产环境中使用,这个问题就无法避免。


对此,imgcook 的定位就在于解决 UI 还原以及生成可维护代码的问题。


设计稿无约束+高还原

对于 UI 还原,目前比较常见的场景是从设计工具(比如 Sketch、PS)入手。但比较不如意的是,设计师交付的设计稿里所带的结构化信息往往是杂乱无章的,如果需要精确得解析一个设计稿里某个模块的结构化数据,往往又需要跟设计师进行合作,规范设计稿中的设计以及制定一些约束来进行使用,这会增加一定程度上的使用成本。


imgcook 为了解决这个问题,目前在对设计稿的解析上做了一些智能化的处理,去除了对设计师图层设计规范这块的依赖(当然对于良好的设计规范会让还原效果更甚!),只保留了一项开发人员可能使用到的规范来做 UI 还原。

生成可维护代码

对于可维护性代码的问题,imgcook 会对还原后的 UI 在代码层面上生成目前使用比较广泛的 Flexbox 布局以及相对定位布局,在一些自定义的命名上(比如样式命名),imgcook 也会根据开发者的习惯生成更加人性化的命名。


如何使用 imgcook?

imgcook 目前对外的体验版里,开放了针对 Sketch 设计稿和 PSD 设计稿的还原插件,以 Sketch 为例,整体的导出流程如下:

1. 插件导出模块

在使用 Sketch 插件进行还原的时候,可选中一个模块外层的容器节点(画板、Group 或者 Symbol)来进行导出。


2. 粘贴还原

模块导出完毕后,可前往 imgcook 平台进行粘贴还原。


3. 保存查阅代码

检查模块还原 UI 以及左侧的布局结构无误后,可进行保存->查阅代码,目前对外的体验版中 imgcook 提供了几种可选择的 DSL 进行代码生成,对于每个 DSL,可在右侧的 playground 里查看具体运行的效果。


什么场景下使用 imgcook?

imgcook 的诞生源于业务,也最终服务于业务。


  • 场景使用层面上,imgcook 倾向于以页面中的模块级别维度来进行使用;对于模块本身,imgcook 也会倾向于一些轻交互逻辑的模块来进行使用。

  • 技术层面上,imgcook 对于支持 Flexbox 布局类型的 DSL 都会有一个比较好的支持。



更多信息

面向未来

面向未来,imgcook 还在深耕更多的 UI 识别能力,诸如 Input/Table/Select 等前端基础控件识别、业界流行的 Antd/Fusion 等前端组件库识别,甚至可以为垂直业务定制独特的业务组件的识别能力,我们希望 imgcook 能真正给前端带来更多的提效能力。

建议反馈

imgcook 目前还处于体验版,会存在一些不确定性的还原 badcase 以及代码生成不合理的 badcase,请向我们反馈,我们会第一时间进行问题收集、跟进处理。


  • Issue

  • 钉钉交流群:21909696


2019-08-10 14:292852

评论

发布
暂无评论
发现更多内容

深入 HTTP/3(2)|不那么 Boring 的 SSL

SOFAStack

互联网 TLS HTTP3.0 QUIC协议 HTTP API

IoT技术的最后决战!百万大奖究竟花落谁家?

华为云开发者联盟

IoT 华为云 iotda NSBD-IOT

企业的文档管理策略

小炮

文档管理

Scrum实施的8个步骤

爱吃小舅的鱼

Kube-OVN v1.10.0:新增Windows节点支持,用户自定义子网ACL等10+硬核功能

York

云原生 网络 cni

Java Core「4」java.util.concurrent 包简介

Samson

学习笔记 5月月更 Java core

PingCAP Clinic 服务:贯穿云上云下的 TiDB 集群诊断服务

PingCAP

数据行业中的建模是什么?

清林情报分析师

数据分析 行业分析 数据建模 业务思维 模型思维

HDFS 细粒度锁优化,FusionInsight MRS有妙招

华为云开发者联盟

hdfs NameNode 元数据 FusionInsight MRS FGL

TiDB 查询优化及调优系列(四)查询执行计划的调整及优化原理

PingCAP

7 款最棒的开源 React UI 库测评 - 特别针对国内使用场景推荐

蒋川

JavaScript react.js 开源 UI 组件库

避免惊群以及负载均衡的原理与具体实现

C++后台开发

nginx 负载均衡 后端开发 C++后台开发 惊群

末流985,秋招斩获多家大厂offer 经验分享

大数据梦想家

面经分享 大数据开发

英特尔开源项目推动SYCL标准采用,打破单个厂商封闭生态系统

科技之家

百度智能小程序巡检调度方案演进之路

百度Geek说

开发一个社区网站,只要20分钟?

华为云开发者联盟

ide 敏捷开发 devcloud 网站开发

技术立根,行业立范,发展立本:中国工业互联网的2.0新征程

脑极体

没有店面店铺可以做自助洗车吗?

共享电单车厂家

自助洗车加盟 自助洗车店面

6月月更“粽”头戏,大家一起来参与吧!

InfoQ写作社区官方

热门活动 6月月更

为什么穷人越穷,富人越富?

大数据梦想家

程序人生

大数据学习必备 | 推荐几个牛X 的 github 项目,助你事半功倍

大数据梦想家

大数据 学习资料 Github'

前沿聚焦:2022最受关注的六大技术热词,你都知道吗?

华为云开发者联盟

零代码 NFT 数字人 元宇宙 云边端协同

平衡人工智能的性能要求,实现可信AI在银行业务场景的高质量应用

易观分析

人工智能

十一、云原生网络微隔离

穿过生命散发芬芳

5月月更 微隔离

Linux 使用 cp 命令强制覆盖功能

AlwaysBeta

Linux 运维

使用 awk 命令统计文本

程序员小航

后端 awk Linxu

「v2.4」千呼万唤的图形化编排,来了!

Jianmu

持续集成 低代码 开发工具 开源项目 节点编排

eKuiper 1.5.0发布:实现无缝式工业数据采集+边缘流处理

EMQ映云科技

物联网 IoT emq 开源之夏 5月月更

聚焦无障碍阅读,福昕捐出2000套福昕高级PDF编辑器

联营汇聚

云原生时代,热门监控工具对比与使用场景分析

云智慧AIOps社区

云原生 监控 Grafana Prometheus 监控宝

又一国际知名律师事务所选择福昕PDF

联营汇聚

AI来袭,前端智能化的一次尝试_语言 & 开发_涂挺鹏_InfoQ精选文章