iOS项目目录结构

时间:2023-03-08 21:52:25
iOS项目目录结构

一. 目前最为流行的目录结构是: <先根据模块后根据功能> 的文件目录结构

优点: 模块分明, 并且开发和维护时方便查阅各个功能

缺点: 可能会出现模块内随意建立文件夹, 导致局部逻辑紊乱

二. 我项目上采用的目录结构是: <先根据功能后根据模块>

优点: 功能层次分明,不会出现乱建文件夹的情况.

缺点: 在开发和维护时不方便根据模块来查阅各个功能

iOS <先根据功能后根据模块>的工程目录

- Generals (可重用可拓展的, 原则上可以在任何项目上使用的类目录)

  - Controllers (可重用的控制器)

  - Views (可重用的视图)

  - Categories (可重用的分类)

  - Services (可重用可拓展的 数据服务类)

  - Logger (日志类)

- Resources (项目上的资源,包括声音文件,图片,文档等等)

  - Images (因为images文件目录存放的图片较多, 建议分模块)

    商品模块

    订单模块

  - Plist (plist文件)

- Macros (存放项目上的宏定义, 只存放全局定义)    

  BaseConstants.h (任务程序都需要的公共宏定义)  

  ApiConstants.h (网络请求接口宏定义, 一般存放网络请求接口名, 请求连接 等宏定义)

NotificationConstants.h (通知名宏定义)

  AppConstants.h (App本身的宏定义, 第三方库的公钥和私钥宏定义)

  EnumConstants.h (业务相关的枚举宏定义)

- Models (存放项目上的模型类, 一般要分模块)

  - 商品模块

   - DAO (数据库访问)

      GoodsModelDAO.h (商品模型数据库访问)

    GoodsModel.h (商品模型类)

  - 订单模块

    OrderModel.h (订单模型类)

- Vendors (存放项目上所有第三方库, 以及本公司自己封装的库)

  - OurLibraries

    HbbDataFormatFramework.framework  (本公司自己的数据格式转化框架)

  - OtherLibraries  

    AFNetworking (网络请求库)

- Helpers (存放项目项目上的帮助类,但切记不要轻易使用单例模式)

  - image (图片相关)

    - APGroupImageUtil.h (群图片合成类)

    - APMultiDownloader (多图片下载器)

- Sections (存放项目本身的代码)

  - Views (存放项目上各个模块商的视图, 类数量较多,建议分模块文件夹)

    - GoodsManageModule (商品管理模块)

      GoodsShowCell.h (商品展示单元格视图)

    - ExportOrderModule (出货单模块)

      OrderDetailCell.h (订单明细单元格视图)

  - Controllers

    - GoodsManageModule (商品管理模块)

      GoodsManageMainVC.h (商品管理入口控制器)

    - ExportOrderModule (出货单模块)

      ExportOrderMainVC.h (出货单模块入口控制器)

  - DataServices (数据服务类,建议分模块文件夹)

    - GoodsManageModule (商品管理模块)

      - GoodsManageDataService.h (商品管理数据服务类)

      - GetGoodsInfoDataService.h (获取商品数据服务器, 一个模块有多个数据服务类, 切记数据服务类不可以使用单例)

    - ExportOrderModule (出货单模块)

      - ExportOrderModuleDataService.h (出货单管理数据服务类)

  - DAO (数据库访问, 如果本地数据库访问的操作较多则需要有单独的文件夹, 一般可以不用)

    GoodsModelDAO.h (商品模型数据库访问类)

  - LowLevelService (底层服务)

    图片组件服务

    IM即时聊天服务

    分享组件服务

    日志组件服务

    系统环境组件服务

    地图_位置服务

    数据库服务

    权限组件服务

    ...