iOS重构项目之路
1、整理目录
- 按照功能模块对整个工程的目录进行分类,比如
2、整理资源文件
- 删除多余的图片文件,资源文件
- 图片资源尽量添加到
Assets.xcassets
中 - 删除项目中未引用的图片的话,可以全部搜索图片名,只要通过
[UIImage imageNamed:@"outline"]
或[UIImage imageWithContentsOfFile:@""]
或xib
中引用的图片都可以搜索到。
- 图片资源尽量添加到
- 有一点要注意,那就是如果是加载的动图的话,搜索注意一下
walk1.png
walk2.png
walk3.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地址的拼接放到一个单粒类中管理,方便维护。
目前就这么多了,有不足之处欢迎大家指教啊