您的位置:首页 > 移动开发 > IOS开发

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层放一些全局功能性的模块
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: