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 ...
随机推荐
- Spring Boot 邮件发送
pom文件依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- JVM 调优工具
JMeter LoadRunner 压力测试工具 JConsole 是一个内置 Java 性能分析器,可以查看内存,线程,类,CPU 等的使用情况,可以通过线程去查看线程的试用情况,死锁可以被检 ...
- Spring Boot熟稔于心的20个常识
1.什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供 ...
- [bzoj1191]超级英雄hero<二分图匹配*匈牙利算法>
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1191 今天随便在bzoj找了一题做,题一读完就发现是个匈牙利算法的裸题,原本以为可以一次过 ...
- 【python系统学习12】函数
函数 函数是一堆组织好的.可重复利用的.用来实现某一功能的代码. python中的input().print().type().bool().len()等都是函数.且是python的内置函数. 我们也 ...
- idea打包或编译错误,错误为c盘idea路径某些文件被占用(非idea文件,项目生成的文件)
方法列表(2的效果可能更好) 1.将被占用的文件删除之后,重新打包或编译. 2.多编译几次项目. 3.发现真正可能的原因.(貌似被南航企业版360拦截了,导致targe或maven等文件被占用问题) ...
- 马哥教育PYTHON相关基础 笔记
1 python 推荐书籍 <python Cookbook> <learn python the hard way> <google's python class> ...
- Vue学习(1)---Vue介绍
Vue是什么 官方定义:Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 ...
- scratch中如何实现面向鼠标指针的相反方向?
你可以试试设置面向鼠标指针,然后再角色进行翻转,而且要是面向反方向的话,鼠标指针是自己可以调节的,面向指针也可以的 scratch学习视频 链接:https://pan.baidu.com/s/1qX ...
- 测试老司机都在用的表白神器你会吗?-Fiddler之AutoResponse线上调试
一.Fiddler在线调试功能和表白神器介绍 在以往的工作中,线上有bug,就需要把文件弄到本地来改,但经常会碰见本地环境又和线上不一样,导致调试困难,闭着眼睛改好之后传到线上去看对不对,不对的话 ...