查看原文
其他

从react-sketch.app说起

2017-04-28 shadow 科技Mix设计Lab

airbnb又发布了款开源工具,这次是一个利用react来生成sketch设计稿的工具。


基本原理

是利用sketch开放的api接口,把react写的组件按照接口逻辑输入sketch。这样就可以通过代码来管理设计稿啦。


我曾经尝试过玩耍sketch的api接口,但是发现连官方文档的示例都运行不起来。。。目前skecth的api接口还不够稳定,还在调整。相关的参考资料很少,得专门去看一些著名插件的源码,所以本来想基于sketch开发一套自动生成设计规范的想法半途而废了。


躺在我微信公众号里就有一篇关于给sketch开发插件的文章,等sketch的开放接口研究透了再更新哈。


回到react-sketch.app,这是一种用代码作为设计语言,用于设计稿版本管理的尝试。


我趁空闲,看了一遍官方文档,有些看法。下面来谈谈react-sketch.app能做啥?

  

1、官方示例ProfileCards


可以建立组件库,这样以后设计师需要使用,直接调用,迭代也方便了,修改一处,其他套用的组件都一并修改了,大大减少了工作量。


通过通过代码版本控制,用代码描述设计,避开了基于图片设计的版本管理难点,设计师可以用git 等工具组织设计系统。

 


顺便介绍下版本控制(Version Control)

版本控制,作用是追踪文件的变化。


为什么需要版本控制?简单说,就是当你出错了,可以很容易地回到没出错时的状态。

你可能已经在不知不觉中,布置了自己的版本控制系统。比如,创建了类似下面这样的文件名:

*KalidAzadResumeOct2006.doc

*KalidAzadResumeMar2007.doc

*instacalc-logo3.png

*instacalc-logo4.png

* logo-old.png

 

什么是版本控制系统?

通过文件名识别版本,对于小型项目或者单个文件也许可行。但是对于软件开发来说,是不适用的。

你能想像吗,要是Windows操作系统的源文件,是在一个叫做"Windows2007-Latest-UPDATED!!"的共享目录中开发的,并且每个程序员都可以编辑,都有一个自己的子目录,那会发生什么情况?那么,Windows就根本不可能被制造出来。

大型的、频繁修改的、多人编写的软件项目,需要一个版本控制系统(简称VCS,行话叫做"文件数据库"),追踪文件的变化,避免出现混乱。一个好的VCS应该做到以下几点:

 

备份(Backup)和恢复(Restore)

文件的每一次编辑都得到保存,可以恢复到任意一个日期。

 

同步(Synchronization)

让不同用户随时都能得到文件的最新版本。

 

撤销(Short-term undo)

文件被你搞乱了,怎么办?那就撤销编辑,回到最近一次的无差错版本。

 

追踪修改(Track Changes)

文件的每一次编辑,你都可以写下注解,解释编辑的原因。

 

 

试验功能(Sandboxing)

当你对文件做出重大变更时,你可以把编辑内容暂时性地保存在一个单独的区域,不断进行测试和除错。等到确认正确以后,再加入主版本。

 

分支(Branching)和合并(merging)

分支功能可以看成是一个更大的测试版本。你将整个的代码做一份拷贝,然后再起一个独立的名字,追踪其变化,与原版本脱离关系,这就是分支。以后,你还可以将分支版本再并入源版本,这就是合并。

 

以上引自阮一峰的博客,做了点精简。

 

2、官方示例Styleguide


可以直接生成设计规范

官方只是简单的一个颜色跟字体的设计规范,其他暂时没有,看看我有没有时间开发一套完整的,把页面的元素、组件也自动标注,并且生成文档。


进行响应式设计

React 提供了功能完备的布局系统,可以在设计端进行准确完整的响应式设计。应用的是flex布局,Flex是Flexible Box的缩写,意为"弹性布局"

可以通过赋予div比例,及设置排列方式、对齐模式,来达到响应式设计的目的。

详情可以查看阮一峰的博客

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

 

Responsive design (响应式设计)

建立一个网页,通过CSS Media Queries,Content-Based Breakpoint(基于内容的断点)等技术来改变网页的大小以适应不同分辨率的屏幕。


Adaptive design (自适应设计):

为不同类别的设备建立不同的网页,检测到设备分辨率大小后调用相应的网页。目前AWD网页主要针对这几种分辨率(320,480,760,960,1200,1600)

 

响应式设计,只需一套代码,减少了自适应设计的针对不同分辨率编写不同代码的工作量。


3、官方示例VenueSearch on Web + Sketch w/ react-primitives, Foursquare & Google Maps


调取api,以真实数据来做设计

可以和任何前端开发一样引入真实的数据和 API 实现例如实时地图、自动多语言等有趣的功能。

设计的时候考虑的就是真实数据的展示效果,让设计更接地气,避免设计稿很美,实际产品开发完,效果大打折扣。

 

以上是结合几个官方示例,总结的react sketch.app的优点。


还有一点要单独说明的就是:

实时预览

这对于程序员的意义更大,因为react写完的前端代码,可以实时在sketch里预览啦,很直观。

 

其实,实时预览不是个新鲜事。


web端有:

在线JS代码调试工具的产品,支持javascript、css、html代码可视化在线调试工具。

介绍3个网站,有兴趣可以玩玩去。

作为练习跟学习,还有调试一些小代码,还是很好用的。

 

Codepen

http://codepen.io/

 

JSFiddle

https://jsfiddle.net/


React

https://codesandbox.io


移动端有:

React Native 开发即时预览与分享工具。推荐一个:


Expo Sketch

https://sketch.expo.io/

 

入门跟快速开发react native必备啊!


还有一类是IDE编辑器。

FaceBook 官方推荐的 Atom+Nuclide

 

我使用过Sublime Text ,由于颜值不高,我弃用了,改用atom,最近突然发现还有个


IDE Deco

https://www.decosoftware.com/


decosoftware专门为 ReactNative 打造的开源 IDE Deco

特点:实时预览,可视化调节属性值,代码库模版

目前只有Mac版本,如果你正好在学习react native,可以试试。

对了,deco IDE还是开源的,可以研究下他的实现代码了,用的是electron,调用nodejs的系统级api,然后再结合react native,实现的编辑器。 

 

最关键是开源!用的不爽可以自己改~




设计+科技=

自在园O设计Mix科技实验室。

长按识别二维码即可获取更多~

 

 

 

 

 

 

 

 

 

 

 


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存