iOS项目目录结构
2016-02-29 16:54
148 查看
转载自:http://www.jianshu.com/p/77a948bcbc38
目前,我接触过的项目中,比较常规的两种结构:
1.主目录按照业务分类,内目录按照模块分类(主目录按照MVC架构分类,内部根据项目模块分类)
2.主目录按照模块分类,内目录按照业务分类
假设对简书iOS应用目录分类(非官方):
1.主目录按照业务分类,内目录按照模块分类
2.主目录按照模块分类,内目录按照业务分类
以上两种分类不是绝对的,具体还得按照业务需求去归类。如果公司多项目的话(指外包公司,哈~),可以尝试按照自己的逻辑去归类,或可以多观察下身边大牛搭建的项目,会吸取到其中的奥秘。代码也一样,多看看大神写的,甚至可以直接模仿大神的代码风格,别人也会把你当做大神!
目录备注中文名感觉就lo了。确实开发中,一些非常有经验的程序员,不会这么干,甚至在代码中也很少中文注释。但个人觉得,普通或中高级工程师真滴很有必要多些注释,由于经验少,变量和方法名可能都命名不好,很多用googl翻译直译,甚至自己到审查代码时都不能直译出来。多谢注释好处就是就算你看不懂我写的代码,也一定能让你知道这是干什么滴(万不得己时,哈~),方便自己也方便别人!最后,目录没有真正的好坏之分,只要适用于自己的业务,就是好的目录!
View 和 ViewController 联系非常紧密,我建议你把它们放在一起。如果实在有抽象封装的 View,很多地方都在用,可以考虑放在
Common 里。静态的 tableviewcell 其实完全没必要封装,你可以在 storyboard 中布局,然后用 findViewByTag 的方法为它设置参数(现在 iPhone 分辨率有很多,代码布局已经不推荐了,新增的动态布局特性非常好用)。
先分模块,然后模块里面mvc是很好且高效的方法,遇到共用模块单独建一个模块叫common,都放到这里面。先mvc,再模块,模块太多结构复杂时会花费大量的时间在文件切换上,多人合作时弊端更甚。
另外推荐一个终端插件,名叫synx,可以通过xcode的虚拟文件目录构建实体文件目录,直接在xcode中建文件夹,然后拉终端里跑一遍就生成了对应的实体文件夹。支持svn和cocoapods
找文件不方便用Cmd+Shift+O
直接业务放一起main,main中按业务有序归类,与main平级的有beans
network db sns im payment codecs utils vendors resources等,utils有自定义的公共的views viewcontrollers categories等,以及hud account fileutils工具类,
utils实用工具
widget工具类
service层放一些全局功能性的模块
目前,我接触过的项目中,比较常规的两种结构:
1.主目录按照业务分类,内目录按照模块分类(主目录按照MVC架构分类,内部根据项目模块分类)
优点:相对比较快定位对应的业务。
缺点:模块相关类太过分散,需要来回切换寻找文件,不方便开发。
2.主目录按照模块分类,内目录按照业务分类
优点:对模块的类集中化,方便管理与开发。
缺点:当几个模块共用一些类时,不太好归类。
假设对简书iOS应用目录分类(非官方):
1.主目录按照业务分类,内目录按照模块分类
2.主目录按照模块分类,内目录按照业务分类
以上两种分类不是绝对的,具体还得按照业务需求去归类。如果公司多项目的话(指外包公司,哈~),可以尝试按照自己的逻辑去归类,或可以多观察下身边大牛搭建的项目,会吸取到其中的奥秘。代码也一样,多看看大神写的,甚至可以直接模仿大神的代码风格,别人也会把你当做大神!
目录备注中文名感觉就lo了。确实开发中,一些非常有经验的程序员,不会这么干,甚至在代码中也很少中文注释。但个人觉得,普通或中高级工程师真滴很有必要多些注释,由于经验少,变量和方法名可能都命名不好,很多用googl翻译直译,甚至自己到审查代码时都不能直译出来。多谢注释好处就是就算你看不懂我写的代码,也一定能让你知道这是干什么滴(万不得己时,哈~),方便自己也方便别人!最后,目录没有真正的好坏之分,只要适用于自己的业务,就是好的目录!
View 和 ViewController 联系非常紧密,我建议你把它们放在一起。如果实在有抽象封装的 View,很多地方都在用,可以考虑放在
Common 里。静态的 tableviewcell 其实完全没必要封装,你可以在 storyboard 中布局,然后用 findViewByTag 的方法为它设置参数(现在 iPhone 分辨率有很多,代码布局已经不推荐了,新增的动态布局特性非常好用)。
先分模块,然后模块里面mvc是很好且高效的方法,遇到共用模块单独建一个模块叫common,都放到这里面。先mvc,再模块,模块太多结构复杂时会花费大量的时间在文件切换上,多人合作时弊端更甚。
另外推荐一个终端插件,名叫synx,可以通过xcode的虚拟文件目录构建实体文件目录,直接在xcode中建文件夹,然后拉终端里跑一遍就生成了对应的实体文件夹。支持svn和cocoapods
找文件不方便用Cmd+Shift+O
直接业务放一起main,main中按业务有序归类,与main平级的有beans
network db sns im payment codecs utils vendors resources等,utils有自定义的公共的views viewcontrollers categories等,以及hud account fileutils工具类,
utils实用工具
widget工具类
service层放一些全局功能性的模块
相关文章推荐
- 一个IOS弹出窗口时的小技巧
- 此证书的签发者无效Missing iOS Distribution signing identity问题解决
- iOS开发--整理常用的第三方资源
- iOS下的2D仿射变换机制CGAffineTransform相关
- IOS公司开发者账号申请详细教程
- iOS学习笔记65-3D Touch开发初体验
- iOS NSDate NSDateFormatter
- iOS开发之 判断字符串的第一个字符是否是中文或者字母开头
- IOS开发GCD小结
- ios 性能优化
- iOS Code Signing 学习笔记
- IOS-监测锁屏事件
- iOS状态栏
- IOS开发使用GCD后台运行
- IOS开发 多线程GCD
- 删除SVN
- iOS 自定义tabtabbar 中间按钮凸起
- AsyncUdpSocket
- 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案
- ios使用jspatch中需要注意的事项