剑客
关注科技互联网

iOS瘦身实践

经历了一个月的瘦身实践,总结下在iOS瘦身上的一些方向和优化点。总体来说分为资源瘦身和代码精简两大方向,当然还有个重要的方向就是H5化或者RN,但是这个要权衡产品来决定。

资源瘦身

删除无用图片

网上有各种各样的删除无用图片的软件和脚本,经过了实践觉得比较准确全面的是 https://github.com/examplecode/unused-image 。扫出来无用图片后记得要在工程里面全面搜下这个图片的名字确保不会被误杀。

删除重复图片

https://github.com/adrianlopezroche/fdupes 这个脚本的原理是通过MD5比较图片,所以只能扫描出字节完全一模一样的图片,对于尺寸不同或者颜色略微不同的重复图片无法识别,所以还是要结合人肉浏览所有图片来删除剩余的重复图片。

大图转换格式

对于超过10KB的大图,不管是webp格式还是jpg格式都比png小很多,png转换webp的工具可以采用:

# 安装
brew install webp
# 转换 webp
cwebp -q 75 bts-home-nocity@3x.png -o bts-home-nocity@3x.webp

cwebp可以控制有损压缩的比率。webp和jpg、png的比较可以参考 http://blog.ibireme.com/2015/11/02/mobile_image_benchmark/

代码精简

抽象重复代码

随着业务的不断迭代,重复冗余的代码也会越来越多,所以找出这些重复的代码进行抽象重构是第一步,而靠人肉是没办法一一去看所有重复代码的,所以好的工具就非常重要。推荐 http://pmd.sourceforge.net/snapshot/usage/cpd-usage.html#Command_line_usage ,支持多种语言,可以选择重复的单词个数,实测下来很有用,帮助我发现了以前没有发现的很多复制粘贴的代码。

删除无用代码

对于找出工程中的无用代码,有各种各样的第三方工具,但是我还是推荐Appcode,因为是IDE使得扫描出来的无用函数可以快速跳转,而且Appcode强大的重构功能使得删除这些代码更加方便。本人一直采用appcode编码+xcode修改配置的IDE组合,当你用appcode写代码后再也不想用xcode了。(没错,我就是万年xcode黑- -)

下图是采用appcode的inspect code扫描出来的无用代码分类,可以扫描出无用的类、函数、宏定义、value、属性等等,而safe delete功能使得删除一些由于runtime被调用到的代码时更加安全智能。

iOS瘦身实践

如何写简洁的代码

对于代码和技术没有追求的人写出来的代码遍地都是又臭又长的重复垃圾代码,这种代码的处理方法只有重构/重写。而经验不足的人当面临稍微复杂点的业务逻辑时也经常束手无策,理所当然的认为为了实现复杂的需求代码只能写得那么啰嗦冗余。解决办法还是多思考,多review自己的代码,一点点优化,哪怕只是抽取了个小函数也是种进步。还有多看看优秀的代码,工作之余拥有自驱力能去主动学习新的编程思维或者框架来改进自己多年固化的编程习惯。

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址