iOS 项目的目录结构
这个话题一直都是没有定论的。因为经验不同,选择的结构也不会完全一样,但是大体应该是一致的。总体原则是只要满足业务需求和后期的扩展就好了。本篇博客持续更新。
总体目录结构
首先给出详细的目录结构图
├── AppDelegate
├── General
├── Module
├── Util
├── Tool
├── Manager
├── Resource
├── Vendor
└── Supporting Files
一级目录
AppDelegate 作为整个应用的入口文件,没啥说的,应该单独拿出来。
General 强业务中可以复用的都可以放在这里。当然这里的文件会越来越多,都是从Module提炼出来的。
Module 无法复用的强业务都在这里了。一般是按照不同业务进行区分,每个业务内的文件结构由每个业务块的编写者自己决定。可以划分成MVC那种三个文件夹形式,也可以都写在一起,这个随意。不过命名方式一定要约定好,比如所有该业务的类都是以该业务英文名称开头。开发时如果发现有可以复用的模块,应该放到General中。
Util 这部分放的是业务相关的常量,比如一些第三方库或者应用需要的key,枚举和埋点的宏定义等。
Tool 这部分是工具模块,包括对常用方法的宏定义包装,比如屏幕尺寸,设备版本,沙盒路径、weakSelf、单例、RGB和HEX颜色等等。也包括一些常用的分类,比如判断字符串是否为空、邮箱是否合法等等。
Manager 这里放置的是弱业务相关的类,也就是跟业务联系不是很紧密,但是又独立成体,比如定位的管理,版本的管理等等。这部分需要把接口写好,因为跟业务弱相关,将来变动的可能性很小。根据这种服务的特点,叫service层也是可以的。
Vendor 这里放置一些不适合 Cocoapods 管理的第三方库。比如这个库本身不支持 pod;或者这个库不太适合你的业务需求,但是你又想用,这时你可能会随时修改其中的某些文件。如果采用pod,那么下次更新新的版本时就会被覆盖,还得重新修改。
Resources 这里放置的是一些资源文件,包括音频、视频、GIF和图片,当然图片最好是放在.xcassets中,好处多多。
Supporting Files 我一般会保留这个系统自带的文件夹,放置info.plist、main.m文件。
二级目录
未完待续……