分享我设计的iOS项目目录结构

  公司新项目就要着手研发了,希望能为这个项目多准备点知识。回想自己做过的项目,目录结构的划分总不如我的心意,有些目录命名不规范导致表达不明确,有些目录因为不具有代表性,导致在实际中不能充分发挥作用,导致随意添加目录,使得目录层次更复杂。因此今天着手设计一个语义更加明前,分层更加清晰的,又具有iOS项目普遍性的目录结构。下面就介绍下我最新设计的目录结构,目前我拿一个旧的项目用新的设计结构调整后,确实感觉清晰很多,您可以看看后面我展示的项目调整目录前后的效果。

 

我新设计的目录结构

MVCS(Model,View,Controller相关。包含各个功能模块)

Resources(资源型文件目录,如数据图片,plist)

Operation(主要的操作类,如网络请求操作,数据库操作,操作工具等)

config(宏定义和const等可修改的配置文件)

AppDelegate(这个目录下放的是AppDelegate.h(.m)文件)

Vendors(第三方组件)

 

  这样划分,名称语义比较清晰,让人一眼看上去就知道各个目录的主要职责,方便不同功能模块的同事进行开发测试工作,而且具有代表性,能满足新功能开发的变化等扩展需要。

 

MVCS(用户接口相关。按照功能模块划分子目录MVC)

       |-功能模块1(功能模块目录)

     |-|-Models            

     |-|-Views     

    |-|-Controllers

 

  |-功能模块2

    |-|-Models

    |-|-Views

    |-|-Controllers

 

  |-功能模块3

    |-|-Models

    |-|-Views

    |-|-Controllers

 

  |-Base(重用性较高的BaseMVC,如父控制器,父视图等)

    |-|-Models

    |-|-Views

    |-|-Controllers

  |-Main(包含功能模块之外的MVC目录)

    |-|-Models

    |-|-Views

    |-|-Controllers

Resources(资源型文件目录,如数据图片,plist)

   |-photo(照片)

   |-city.plist(城市数据)

 

config(宏定义和const等可修改的配置文件)

  |-Const.h(常量文件)

  |-Macro.h (宏文件)

  |-Notification.h (通知定义文件)

AppDelegate(这个目录下放的是AppDelegate.h(.m)文件)

  |-AppDelegate.h

  |-AppDelegate.m

 

 

Operation(主要的操作类,如网络请求操作,数据库操作,操作工具等)

  |-Net(网络层的代码)

  |-Data(数据层代码)

  |-Tools(工具类)

  |-Category(类目)

 …

 

 

 

Vendors(第三方组件)

  |-Libs(第三方库)

    |-|-AFNetworking

    |-|-FMDB

    |-|-SDWebImage    

  |-Components(第三方小组件,如第三方自定义控件等)

 …

 

采用新设计的前后效果对比

 

  按照这个设计。我将自己的项目进行了调整。如图所示:

               

 

  左边是我采用该设计调整后的新的目录结构,右边是原来的目录结构。明显左边的表达清晰,结构合理,而且比较有普遍性;右边的是我以前的目录结构,因为有时候旧的目录结构不能完全达到我的要求,所以就会导致我随意创建新的目录,因此明显比较凌乱。

原文地址:https://www.cnblogs.com/JackieHoo/p/5011114.html