PaintCode调研

1.   背景

PaintCode是一款面向iOS和Mac应用开发者及设计师的矢量图形可视化开发工具。它可以让设计师把设计好的psd文件直接导入该工具,然后生成用Quartz 2D 产生的object-c代码。直接供程序员使用,而省略了图片资源。

1.1主要功能

  1. 直接生成适用于iOS的Objective-C代码,节省了大量的编程时间。
  2. 生成的代码支持ARC/MRC,iOS5+/6+/7+.
  3. 可以控制图片生成的Frame、颜色等变量来动态生成需要所需要的图片。

1.2 相关资料:

官网:http://www.paintcodeapp.com/

http://blog.csdn.net/lujunelong/article/details/18899913

2.   实验数据

2.1实验一:复杂图片

背景:采用一张较为复杂的图片, 400*400。体积为:37k。

只提供了2X的图片(已压缩);支持armv7 armv7s arm64。


 


paintCode


UIImage


安装包大小


342k


379k


占用内存


3.4M


3.8M


real mem:


12.25M


13.3M


耗时


0.054807(跟踪发现就一个地方耗时)


0.0087

描述:

  1. 安装包大小在paintCode下有明显减小(即使已经支持了arm64,仍然能减小,且图片还没有支持1x和3x的图片效果明显)
  2. real men和占用内存paintCode都有明显减小
  3. 耗时有较大提升。性能差距加大。

2.2 实验二:简单图片

背景:采用一张较为简单的图片, 224*90。体积为:2k。


安装包大小


paintCode(armv7 armv7s arm64)


UIImage(armv7 armv7s arm64)


1份代码or图片


380k


381k


3份代码or图片


396k


385k


安装包大小


paintCode(armv7)


UIImage(armv7)


1份代码or图片


215k


217k


3份代码or图片


216k


221k

描述:

  1. 如果仅仅是打armv7的包,使用paintCode安装包大小有减小。有收益。
  2. 针对简单图片做了3份,使用paintCode在同时支持arm64的情况下,体积收益不一定要大于使用图片。

2.3 实验三:耗时测试

背景: 复杂图片就如实验一,简单图片资源参考图片二


方式


耗时(秒)


简单button的paintCode


0.006329


imageWithContentsOfFile


0.000797


imageNamed(第一次)


0.009291


复杂paintCode


0.061804

描述:

  1. 复杂的paintCode耗时会较长。
  2. 简单button的PaintCode耗时数量级在毫秒级
  3. 一份代码可以支持多个屏幕,针对Iphone6,iphont6+没有体积增加。
  4. 显示效果较好,矢量拉伸。
  5. 有效减小内存使用。
  6. 在复杂大图下,可以有效减少安装包大小。
  7. 如果针对armv7 arm64进行编译,跟直接使用图片比浪费体积。
  8. 生成UIImage耗时比使用直接图片时间长。

3.   风险点&优势

3.1 优势

  1. 一份代码可以支持多个屏幕,针对Iphone6,iphont6+没有体积增加。
  2. 显示效果较好,矢量拉伸。
  3. 有效减小内存使用。
  4. 在复杂大图下,可以有效减少安装包大小。
  5. 如果针对armv7 arm64进行编译,跟直接使用图片比浪费体积。
  6. 生成UIImage耗时比使用直接图片时间长。

3.2 劣势

  1. 如果针对armv7 arm64进行编译,跟直接使用图片比浪费体积。
  2. 生成UIImage耗时比使用直接图片时间长。

4.   进一步优化

为了解决耗时问题, 给paintCode生成的图片做一个缓存,缓存到磁盘。下次使用直接取缓存。提升效率。

备注:

  1. 使用文件名+尺寸+特殊参数组成图片名称存储到磁盘中。
  2. 缓存的图片不要进入icloud。让每个机器分别创建。
  3. 缓存的图片加入一个过期淘汰机制,注意尽量不要让应用中所有图片在同一时间重建。
  4. 进入加入Server开关,可以强制客户端缓存清除。

5.   总结

PaintCode可以对内存大小、安装包大小的控制起到一定作用。但它还是有很多的限制因素。

5.1建议使用PaintCode的场景:

  1. 图片较为复杂、体积较大。
  2. 要为不同屏幕生成多套图片。

比如:首页启动的Loading图片。新手引导。

时间: 2024-10-26 20:25:15

PaintCode调研的相关文章

电梯调度——调研报告

需求调研报告 立项背景: 石家庄铁道大学基础教学大楼是一座18层的建筑,其内部配备4部电梯,学生和老师使用电梯的高峰时段相对集中于每次上课/下课的时段,故电梯的使用具有突发性和荷载量大的特点,故设计合理的电梯调度算法,避免出现 “公共汽车”,即把电梯作为总线,它从底部到顶部,停在每一层楼,打开门,让人们进出,然后把门关上,继续前进.之后到达顶层,它会下去.可以极大的提高电梯的工作效率. 石家庄铁道大学基础教学楼的电梯配置如下: 电梯数量:4部 电梯的最大容量为15人 电梯经过每楼层的时间:3秒

移动Web开发调研

背景 在移动互联网浪潮下,移动设备普及,对配置需要考虑移动端设备可访问性.Web作为最贴近用户的配置手段,面向从PC端传统页面,向移动端页面的转型. 概念 PC Web: 面向传统PC电脑的浏览器开发的Web人机交互界面. 移动Web:面向移动设备的浏览器开发的Web人机交互界面.移动设备包括:手机.Pad等移动设备. 移动APP:面向移动设备开发的APP软件,直接运行于移动设备的系统上.不同于移动Web,其不需要借助中间软件运行. Web APP: 以浏览器为入口,实现 App 的 Web 化

团队作业二之需求调研

这次的软件工程团队合作我们我们小组准备合作制作一个针对校内师生的购书网站,简单来说就如同京东淘宝当当那些大型电商网站一样,但我们能力有限,只能面对我们学校师生制作一个购书网站,来解决教科书购书难,使用过后闲置的问题,如今学期过半,也早已没有那种为教科书无处订购.价格昂贵的问题而发愁了.但在刚刚开学的时候,我们却感觉这是个很头疼的问题,向学长学姐借的书目不全.单人购买的昂贵.找不到集体购买的渠道,着实让我们很伤脑筋,,每个学期初买书需要将近400块钱费用,有的同学会向学长学姐借书,但是不能保证学长

《竞品调研:抄也是一门学问》学习总结

最近看了三节课出品的课程<竞品调研:抄也是一门学问>,学习总结如下: 1.产品调研的误区: (1).产品调研报告 不等于 行业分析报告 (2).产品调研报告 不等于 产品体验报告 (3).产品调研报告 不等于 写产品报告 (4).不要用"看起来很高深''的分析过程来证明自己的结论是靠谱的 (5).不要期望通过竞品的调研来证明自己的存在感 2.不做产品调研的PM是不合格的,优秀的PM一定能做好产品调研 3.产品调研的全过程: 调研背景--明确目的--选择产品-体验产品--还原产品--分

【转载】 调研文献的方法介绍,适用于各个领域

又是一个新学期开始了,新生入学,很快就是开题报告.为了让新生迅速进入状态,在第一次的小组会上我们对实验室的仪器.卫生.管理制度,以及如何进行文献调研和实验记录分别做了一个报告.其中,我负责介绍我的文献调研经验,也在这里分享给有需要的各位,抛砖引玉. 对文献调研的困惑,我问了几位同学,集中在下面几点: 不知道如何着手查到有效文章? 文献如何查全? 这两个问题反应了查文献的两个关键:查全和查准. 但是我以为,文献调研并不是只有“查”.调研是为了回答你想知道的问题,查只是第一个步骤,查到文献后读,获取

关于项目调研

一.柠檬时代app 1.作品内容: 该作品主要为每一所高校的大学生量身定制的手机生活助手,由您自主运营的校园手机客户端.开放的自定义平台,汇聚本校周边所有生活服务.外卖商家.娱乐休闲.新鲜事儿.知名社团.周边商铺.校园达人等栏目. 2.作品来源: 中国“互联网+”大学生创新创业大赛:http://plus.jlu.edu.cn/item.php?id=3463.入选理由及评价: 大学生活app我一直挺推从的,在我看来,该作品服务于高校学生,给了大学生自己定义的平台,这点是很有创意的,特别是对于大

联发科(MTK)调研归来

MTK调研,应该是这个暑期做的最有益的事情之一,回来后也迫不及待跟几位同事做了交流,那么现在写点干货与大家一起交流. 联发科的这几天 联发科是一家什么单位?去之前,我的了解停留在魅族.红米等手机的芯片.去了之后,对MTK有了一个较全面的了解,但更多的是感受着这家企业的文化和活力! 几个问题,几点感悟 1.  IT.IC企业天天加班到疯狂,是不是很苦? 是的,几乎加班在IT企业是家常便饭,因为这就是安排给他的工作需要做,如果白天做不完,那么自己的事情,肯定需要自己晚上加班进行了.因此,其实加班没那

软件工程之四则运算用户调研及反馈

经过一周才来写这篇用户调研反馈,有点晚了些哈.这一周来,app下载的人数虽然不多,但我们私下还是找了好几个用户进行调研反馈: 1.大部分觉得还是不错,界面挺好看的,计算器的设置,给用户使用app时提供很多方便 2.存在很多bug,在做题时,当用户输入答案时,首位输入“.“”/”“空”等情况时,会直接退出运算界面,退到上一界面 3.计算器也存在同种情况,只能进行两个数的运算,但三个数运算时,就会出错,例:1+2+3时,就会直接出错 4.运算过程中有一个“答率”,没有利用数据库或文件数据保存,但退出

探讨软件工程(需求调研和解决方案)

软件产品从市场需求来说,旨在解决现实中的一个个难题. 产品实现需求功能的同时,也体现了该需求的一种解决方案. 市场需求 现实的需要,才有了现在的商业体系(当然包括IT) 交通不够畅通,就有了导航.打车等软件 无暇外出购物,就有了京东.淘宝等网购 人们玩游戏,就有了暴雪.育碧等游戏公司 人们品美食,就有了九大菜系 解决之道 既然有需求,怎么实现,也就摆上了台面 交通不便,那么选择出行方式,以及如何规划路线,就成为了问题 导航软件,监控实时路况,一定程度上解决这个难题 标准化 任何商品(包括 IT