[iOS]项目管理-工程文件目录结构

做了这么久的程序猿,总结一下个人认为比较合理的iOS项目文件目录结构吧!如果觉得好的朋友可以顶一下!!(n_n)    如果有更好的请留言提供分享。

本文所提到的项目的项目名称为: LYTestApp

实际的存储文件结构要和工程中的文件目录结构保持一致。


一、项目的根目录下存放了5个文件夹

1.Explanation/ 文件夹(如果是一个人开发可以不需要这个文件夹)。

这个文件夹下存放一些共同开发的说明文档和注意事项,例如:项目人员分配情况一览表,项目编码风格/注释模板,项目主要模块一览表,项目框架设计图。

这里存放的文件可以让项目新人很快的融入项目,方便各个模块之间人员的沟通,和所有人员对项目整体的了解。


2. LYTestApp/ 文件夹存放该项目源码,之后具体讲解。


3. ThirdSupport/ 文件夹存放一些官方或者通用的SDK。

这个文件夹存放的SDK的更新和维护由第三方人员负责。本项目人员不需要备份,不需要修改。

例如:友盟SDK,多盟SDK,QQ互联SDK,微信SDK,ASIHttpRequest,AsyncSocket ,FMDB ... ...

如果实在需要修改,一定要做好注释,不要删除原代码(注释掉即可)。


4. Frameworks/ 文件夹存放系统的Frameworks,大家都懂的。

5. Products/ 文件夹存放编译好的App,大家都懂的。


二、详细讲解项目文件夹

1. LYTestApp/Supporting Files/ 文件夹,放在最后的位置。存放一些项目配置文件和图片、字体等。

1.1 AppDelegate.m AppDelegate.h 这两个文件一般不会修改,不会查看。可以放在 LYTestApp/ 最上面或者最下面或者放到  LYTestApp/Supporting Files/ 里去。

1.2 LYTestApp/Supporting Files/Images/ 这个文件夹,存放所有跟本项目相关的图片文件。

这个文件夹很重要,图片最好是分模块子文件夹分别存放好。图片的命名加上模块缩写做前缀,为了避免重复图片。

之后如果有更改皮肤的需求,则整理更换文件夹即可。

1.3 LYTestApp/Supporting Files/Fonts/ 这个文件夹,存放所有项目引用的新字体。

1.4 LYTestApp/Supporting Files/Sounds/ 这个文件夹,存放所有项目引用的过场声音。

1.5 其他资源文件类型按上面的这种风格存储即可。


2. LYTestApp/Constant/ 文件夹,存放本项目所用到的常量和通用宏。

例如:项目路径管理:用宏定义定义 Cache ,TEMP,Documents、等目录的直接路径访问。要有一定的注释,方便项目所有成员使用,也可用于其他项目。

项目默认属性管理:用宏定义定义一些默认的属性,如 默认文本显示的字体颜色、默认背景颜色,

项目默认提示信息,等等在项目中通用的信息都保存在此文件夹下的文件中。
在预编译头文件中包含这里的文件。


3. LYTestApp/Shared/ 文件夹,存放本项目共享使用的全局数据(跨模块数据)和方法。

例如:用户数据,刷新页面需求 等等。

共享的数据要有详细的注释,方便项目所有成员理解和使用。

共享的方法如果多的话,要写成类别。这里的共享方法要做好注释,方便项目所有成员调用,也可用于其他项目。

LYTestApp/Shared/SharedData.h 、 LYTestApp/Shared/SharedData.m 、 LYTestApp/Shared/SharedMethod.h 、 LYTestApp/Shared/SharedMethod.m 。


4. LYTestApp/Shared/LYUIViewController.h 、 LYTestApp/Shared/LYUIViewController.m 重新定义UIViewController,项目使用的UIViewController不要直接继承UIViewController,要继承 LYUIViewController。为了方便整体的修改和需求变更。(如果有页面访问时间统计的需求,则可以写在这个 LYUIViewController 类中)


5. LYTestApp/Support/ 文件夹,存放一些本项目使用的通用模块,也可用于其他项目。

例如:自定义UIAlertView,自定义的 UITableView,自定义的 UILabel 等。

这部分要有详细的接口注释,方便项目所有成员使用,方便以后的维护和再次开发。


6. 各个模块文件夹了,简单的模块用一个文件夹就可以了(LYTestApp/LYTestModule/),复杂的模块需要用很多子模块(子文件夹)((LYTestApp/LYTestModule/SubModule1/  and  LYTestApp/LYTestModule/SubModule2/ ... and so on))。

使用MVC设计模式设计的模块,可以使用3个子文件夹进行管理。例如模块:LYTestModule,则有三个文件夹
LYTestApp/LYTestModule/Model/

LYTestApp/LYTestModule/View/

LYTestApp/LYTestModule/Control/

对于一些比较重要的模块,在接口文件中应该要有详细的注释,之后会有关于模块的设计,以及各设计模式的讲解(如果有时间的话)。


7. 参照6,增加更多模块。









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值