iOS重构项目之路
iOS重构项目之路
1、整理目录
- 按照功能模块对整个工程的目录进行分类,比如

2、整理资源文件
- 删除多余的图片文件,资源文件
- 图片资源尽量添加到
Assets.xcassets中 - 删除项目中未引用的图片的话,可以全部搜索图片名,只要通过
[UIImage imageNamed:@"outline"]或[UIImage imageWithContentsOfFile:@""]或xib中引用的图片都可以搜索到。 
- 图片资源尽量添加到
- 有一点要注意,那就是如果是加载的动图的话,搜索注意一下
walk1.png
walk2.pngwalk3.png这种的要搜索walk。 - 对所有图片文件进行压缩
- 通过第三方工具对所有图片进行一次压缩 ,我这里用的工具是
Squash
- 通过第三方工具对所有图片进行一次压缩 ,我这里用的工具是
- 删除无用的类,或者重复的类
- 这个也可以全部搜索,如果项目中使用了这个类,肯定可以搜索出来

3、分离功能模块
- 因为有多个项目使用相同的功能,所有使用软连接的方式对功能模块进行引用
- 在
SVN建立一个目录单独存放分离出来单独功能,多个项目通过软连接的方式都可以引用这个文件夹 
- 其他工程通过软连接进行引用,通过拖拽方式进行添加,不勾选
copy items if needed - 模块中用到的一些公共方法要保证项目中都存在
注意
勾选copy items if needed会将源文件copy到项目中
不勾选copy items if needed的话只是建立软连接
4、整理源文件
- 这里就需要逐个查看源文件了,看过后进行分析整理,这个也是最耗时的,要对整个项目逻辑都理解清楚才能进行抽取或者继承。
- 该封装的封装,比如说工具类,公共类
- 该用继承的就用继承,继承大法好啊,可以省去很多代码
- 通过宏去控制逻辑,比如各种功能开关
- 最后一步才是终极目标,对整个项目进行分析解耦,让逻辑更加清晰
5、升级各种框架
- 项目中的框架很多都是旧的,没有使用Cocoapod进行管理,所以只能一个一个替换,期间尝试替换成Cocoapod,奈何网络不行并且问题颇多,最后不得不放弃使用Cocoapod。其实Cocoapod真的挺好的。
6、安全分析
- 通过解压ipa包,发现里面有很多源文件,可以直接看到内容,有些东西用的plist,或者txt文本,这些东西直接包含在ipa包里,非常之不安全,全部改为使用源文件
.h或.m,或者直接预制到加密数据库中。
7、提取URL管理公共类
- 将所有的URL地址的拼接放到一个单粒类中管理,方便维护。
目前就这么多了,有不足之处欢迎大家指教啊
iOS重构项目之路的更多相关文章
- GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...
- GitHub上有很多不错的iOS开源项目
GitHub上有很多不错的iOS开源项目,个人认为不错的,有这么几个:1. ReactiveCocoa:ReactiveCocoa/ReactiveCocoa · GitHub:GitHub自家的函数 ...
- iOS开源项目周报0105
由OpenDigg 出品的iOS开源项目周报第四期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. He ...
- iOS开源项目周报1229
由OpenDigg 出品的iOS开源项目周报第三期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Ma ...
- iOS开源项目周报1222
由OpenDigg 出品的iOS开源项目周报第二期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. io ...
- iOS开源项目周报1215
由OpenDigg 出品的iOS开源项目周报第一期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. PY ...
- iOS Waxpatch项目(动态更新)
我的iOS Waxpatch项目地址https://github.com/piaojin/iOS-WaxPatch
- iOS原生项目中集成React Native
1.本文的前提条件是,电脑上已经安装了CocoaPods,React Native相关环境. 2.使用Xcode新建一个工程.EmbedRNMeituan [图1] 3.使用CocoaPods安装Re ...
- 直接拿来用!最火的iOS开源项目
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...
随机推荐
- WeChat-SmallProgram:组件的业务 slot 的使用
1.调用组件向自定义组件插入内容,使用 slot 在自定义模板中有一对 <view><slot></slot></view> 这里是干什么用的呢? 在 ...
- String是否相等、new的时候创建了几个对象等问题详解
问题一 这段代码创建了几个对象? String str1 = new String("aa"); 答案是两个 "aa"对象和String对象 Java代码在编译 ...
- [vijos1554&bzoj1411]硬币游戏<快速幂>
题目链接:https://vijos.org/p/1554 http://www.lydsy.com/JudgeOnline/problem.php?id=1411 这题真的淫*QAQ... 一看题还 ...
- A - Jessica's Reading Problem POJ - 3320 尺取
A - Jessica's Reading Problem POJ - 3320 Jessica's a very lovely girl wooed by lots of boys. Recentl ...
- CentOS-7.6 下搭建 NIS 服务器
##服务端配置: ####Server: 192.168.0.178(CentOS 7.6) # systemctl stop firewalld # systemctl disable firewa ...
- 【Java技术系列】爱情36技之Bug大战
1. 鲁迅先生说:程序员,天不怕地不怕,就怕小虫儿爬呀爬,爬呀爬. 随着时间的推移,鲁迅先生又说:真正勇猛的程序员,敢于让虫子面对惨淡的虫生. 虫子在程序员心中是啥东西?虫子的学名为 Bug,是多少入 ...
- markdown 插入图片太大?怎么设定图片大小?
你一定在插入图片的时候,遇到图片太大,影响观感的问题. Markdown中,图片大小的设定方式有两种 第一种: 
show me the code and talk to me,做的出来更要说的明白 本文源码,请点击learnSpringCloud 我是布尔bl,你的支持是我分享的动力! 一.引入 上回 基于 S ...
- C语言实现链式队列
链式队列,简称"链队列",即使用链表实现的队列存储结构. 链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头元素和队尾元素, ...