设计的项目架构主要引用MVVM+MVC架构,并以功能模块分级。以下为目录结构。
初级目录:
我们只需要关注SGZH文件夹下的目录,其他为Xcode管理的目录。可以看到此目录为项目初级目录,我们开发过程只需对初级目录内的文件进行操作,其主要划分为3大块:
AppDelegate: AppDelegate是程序入口,程序启动和显示逻辑都定义在内部,主要可以让开发人员快速找到代理文件并了解程序从启动到显示过程,也可以快速进行一些初始化测试。
Resource: 此目录主要存放一些项目资源文件,如项目切图、音频、视频、coreData数据等。
Class: 存放我们编写的代码文件。
SupportingFile: 项目配置文件。
Info.plist、main.m、pch文件。
二级目录:
Resource目录下: 相对较小的切图放在Assets内部,并以功能模块划分文件夹。如果较大的图,如启动页,引导页,可以在该目录下新建对应的功能模块文件夹存放。其他音频视频文件可以建立对应名字的文件夹存放。
Class目录下:
Category: 项目分类文件。
Macro: 项目全局头文件、全局宏和常量
Other: 其他一些配置文件,如网络请求API
Main: 项目主要文件,全局共用文件以及一些基类
Tool: 项目工具类,如网络请求工具,缓存工具,app管理工具等 Vendor: 存放项目需要手动引入的第三方库。
Sections: 项目功能模块分组。
可按底部tabbar对应选项卡划分,若有登录、新特性等比较大的功能,也可划分为一个模块。 若果模块内的子模块功能比较多,也可在其内部划分一个子模块。 每个模块内部都分4个文件夹,分别存放对应的Controller、Model、View、ViewModel。 据我了解,大部分企业iOS项目都会选取类似这种架构模式。个人觉得此架构较为清晰,可读性好,并且每个模块文件夹相对独立,开发人员相对专注开发自己的模块。
以上为本人从事iOS开发以来总结的一些项目架构经验,如有不足或者可改进之处可提出修改。