1.前言

清晰的项目目录结构有利于项目的开发,同时也是软件架构的一部分,所以,项目开发之初搭建项目的目录结构很重要。刚转iOS时,自己并不知道如何搭建App的项目目录,在参与开发两个应用后,结合Web开发的目录习惯我整理了自己的目录结构。分享一下,欢迎交流。

2.我的项目目录结构

项目目录
├── ThirdLib(三方库)
│   ├── SDWebImage
│   └── AFNetworking
├── Framework(自己封装的类库)
├── General(通用类目录)
│   ├── Class(通用的类,比如自定义父类)
│   └── Helper(通用辅助方法)
├── Main(程序单一入口,仅放AppDelegate区分其他文件)
│   ├── AppDelegate.h
│   └── AppDelegate.m
├── Model(数据模型类目录)
│   ├── Macro(宏定义目录)
│   ├── BLL(业务逻辑层目录)
│   ├── DAL(数据访问层目录)
│   ├── Entity(自定义实体目录)
│   ├── Request(网络请求类目录)
│   ├── Location(定位服务类目录)
│   └── Socket(Socket类目录)
├── Module(功能模块目录)
│   │
│   ├─── ModuleA
│   │      ├── ViewControllerA.h(视图控制器头文件)
│   │      └── ViewControllerA.m(视图控制器m文件)
│   ├── ModuleB
│   ├── ModuleC
│   ├── ModuleD
│   └── ModuleE
└── View(视图类目录)└── MyTestView

3.说明

1)项目目录

项目程序文件根目录,存放项目程序文件、资源文件等。

2)ThirdLib

第三方开源类库,比如,SDWebImage、AFNetworking等。

3)Framework

自己封装的类库。

4)General

通用类目录,存放自定义的视图控制器基类等。

5)Main

程序单一入口,仅放AppDelegate区分其他文件

6)Model

数据模型类文件目录。主要用于存放自定义的数据模型类。

子目录:

I)Macro(宏定义目录)

我把自己的很多宏定义,包括色彩字体等样式宏定义、业务逻辑宏定义、网络请求、Core Data的宏定义等头文件放在该目录下。命名规则为XxxMacro.h。这样在头文件引入的时候很清楚我要引入哪些宏定义,以避免重复引用。(虽然import已经避免了编译文件时重复引入文件,但是强迫症患者。。你懂的)

II)BLL(业务逻辑层目录)

业务逻辑层(Business Logic Layer)目录主要存放的是项目的业务逻辑处理类及分类。按照项目功能需求来封装业务逻辑。具体命名依所实现的功能业务来命名。

III)DAL(数据访问层目录)

数据访问层目录 主要存放项目.xcdatamodeld文件和封装的Core Data接口类。

IV)Entity(自定义实体目录)

数据模型实体类目录。存放例如User等数据模型的类文件。

V)Request(网络请求类目录)

存放网络请求的类目录。

VI)Location(定位服务类目录)

存放定位服务类。

VII) Socket(Socket类目录)

存放Socket类。

7)Module

功能模块类目录,按照项目的功能模块创建子目录。每个子目录下存放该模块的视图控制器文件。

8)View

视图文件类目录。存放视图文件。比如自己封装的视图控件,封装的cell等。

4.小结

1)吐槽一下博客园的文档编辑。编写HTML模式的时候,我无意间点了取消。。。然后全都木有了。。。都木有了。。。木有了。。。有了。。。了。。。!!!!!!妹啊!!为什么取消键在右边啊喂!!!!然后command+z。。。页面就全部崩溃了。。。。面就全部崩溃了。。。。就全部崩溃了。。。。全部崩溃了。。。。部崩溃了。。崩溃了。。。。溃了。。。。了。。。。!!!!!!另外,博客输入文本的插件内容区域高度太小了。。。用起来很不爽啊!!!!!!体验太差!差评

2)言归正传,我的目录结构是综合了之前的开发经验和我leader的开发习惯以及网上的目录结构整理的,并不一定适用于其他项目。欢迎留言交流,谢谢~

转载于:https://www.cnblogs.com/nycoder/p/4729513.html

iOS开发总结——项目目录结构相关推荐

  1. 最全的 eclipse web 项目目录结构

    本文会尽可能对 java web 项目的目录结构做出最详细的解释,尽量做到浅显易懂. eclipse web 项目目录结构 java web 项目事例 03-springmvc-drien-xgq 是 ...

  2. Java项目目录结构与解析

    一个正规的Java项目目录结构首先要清晰. 所以打包的结构就很关键. 如上图所示: bean层 : 放置数据的类 client层 : 放置与用户交互的代码 dao层: 访问数据库层 dao.util层 ...

  3. angular 标准目录结构_Angular-cli新建项目目录结构详解

    Angular-cli新建项目目录结构详解 在上一篇博客中我们已经通过Angular CLI命令行工具创建出来一个全新的Angular项目,要想写项目,首先我们要先搞清楚项目的目录结构是怎样的,每个文 ...

  4. Spring boot 项目目录结构详解

    对SpringBoot项目目录进行分层显示能够使我们的开发思路更加的明确,代码内容更加清晰易懂,下面向大家讲解一下项目目录结构. 代码层的结构 根目录:com.springboot 1.工程启动类(A ...

  5. SpringBoot项目目录结构(工程结构)

    SpringBoot项目目录结构 一.代码层结构 根目录:com.bajins 二.资源目录结构 根目录:resources 三.mybatis项目结构示例 阿里巴巴Java开发手册见: https: ...

  6. Angular项目目录结构

    前言:不支持MakeDown的博客园调格式的话,真的写到快o(╥﹏╥)o了,所以老夫还是转战到CSDN吧,这边就不更新啦啦啦~ CSDN地址:https://blog.csdn.net/Night20 ...

  7. Python开源项目目录结构参考

    python开源项目目录结构参考 转载:http://www.cnblogs.com/holbrook/archive/2012/02/24/2366386.html 原作者:心内求法 每个真正的程序 ...

  8. html 项目 目录架构,前端项目目录结构规范.pdf

    前端项目目录结构规范 前前端端项项目目目目录录结结构构规规范范 简简介介 该文档主要的设计 目标是项 目开发的目录结构保持一致,使容易理解并方 构建与管理. 要要求求 在本文档中,使用的关键字会以中文 ...

  9. Vue项目目录结构介绍(三)

    前言 本章我们会对一个 Vue 项目的目录结构进行讲解,解释各子目录以及文件的作用,前端的模块化,Vue 单文件组件规范等. 1.基础目录和文件介绍 在上一章,我们通过 vue-cli 创建了一个新的 ...

  10. C语言GUI编程之数字记忆游戏——项目目录结构和初步的窗口布局

    目录 项目目录结构 创建项目 命名规范 目录结构 编程模式 MVC 实例 初步的窗口布局 效果 EasyX的使用 总结 项目目录结构 创建项目 在Visual Studio 2022中创建一个空白的项 ...

最新文章

  1. oracl 、mysql在线查看文档
  2. ③pycharm的基本使用
  3. 写Rap,编菜谱,你画我猜……这些 AI demo 我可以玩一天!
  4. 损失函数、python实现均方误差、交叉熵误差函数、mini-batch的损失函数
  5. java list 超出范围_java-列索引超出范围:2,列数1
  6. iOS开发 - StoryBoard + UIScrollView + UIView
  7. 饼状图改变数据显示位置_Tableau--饼图大作战
  8. 删除字符,用外部函数
  9. 实测Untangle - Linux下的安全网关
  10. Linux系统各个目录的作用(中英文对照)
  11. python在linux编程_python要在linux下编程吗
  12. django基础篇01-环境的搭建和项目的创建
  13. knot DNS 01 Tips
  14. http协议中的1xx,2xx,3xx,4xx,5xx状态码分别表示什么?列举常见错误码及含义
  15. android storyboard,iOS中xib与storyboard原理,与Android界面布局的异同
  16. 客快物流大数据项目(八十五):实时OLAP分析需求
  17. JavaScript in_array 函数
  18. 配置Microsoft SQL Server安装,win7,win10
  19. 轿车优劣评说 1/2 ,全文超过1万字,请慢慢看。
  20. 鼠标移入移出功能的具体实现代码

热门文章

  1. 3D动画设计软件:Cinema 4D R25 for mac(c4d r25)
  2. 使用「Bartender」创建简洁的Mac菜单栏
  3. AWS推出OpenJDK长期支持版本Amazon Corretto
  4. js验证银行卡号 luhn校验规则
  5. inux_异常_07_ftp查看不到文件列表
  6. saltstack的探索-安装vim、nginx服务和配置、自定义脚本
  7. Linux 探索之旅 | 第五部分第七课:Shell 实现图片展示网页
  8. 仿listBox写了一个Control控件为item的列表集合
  9. Skinned Mesh原理解析和一个最简单的实现示例
  10. perl Makefile.PL;make;make install 安装时报错