iOS项目架构文档
设计的项目架构主要引用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开发以来总结的一些项目架构经验,如有不足或者可改进之处可提出修改。
iOS项目架构文档的更多相关文章
- 3g自己主动更新网卡驱动web完架构文档
几年前写. 看它是否是用得上 1 简单介绍 本文档具体描写叙述了基于ASP.NET平台和IIS服务的T-Mobile自己主动更新系统的实现框架. 本文档主要从技术架构和业务架构两个方面来着手来描写叙 ...
- nginx-tomcat-memcached架构文档说明(转)
800x600 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 st1\:*{be ...
- [转]OpenContrail 体系架构文档
OpenContrail 体系架构文档 英文原文:http://opencontrail.org/opencontrail-architecture-documentation/ 翻译者:@KkBLu ...
- xml和xsd架构文档相关知识
1.使用架构(XSD)验证XML文件 2.使用自动生成工具: 工具目录:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4. ...
- xxxx征集系统项目目标文档
分组:每四人一组 主题:xxx征集系统 成果: 讨论结束后,每组提交一份课堂讨论记录(电子版发表到博客上,纸质版小组成员签名,下节课提交). 每人根据课堂讨论结果提交一份系统利益相关者描述案例.撰写项 ...
- XXX系统项目目标文档课堂讨论
XXXX重大技术征集系统 1.讨论结果: 2.项目目标文档 A目标: 1. 实现普通用户在线需求填报,个人信息管理,需求结果查看. 2. 实现审核员用户的需求审核,需求查看浏览和生成图表结果. 3. ...
- xxx征集系统项目目标文档
分组:每四人一组 主题:xxx征集系统 成果: 讨论结束后,每组提交一份课堂讨论记录(电子版发表到博客上,纸质版小组成员签名,下节课提交). 每人根据课堂讨论结果提交一份系统利益相关者描述案例.撰写项 ...
- kettle开源项目部署文档
kettle开源项目部署文档 1.kettle简介 kettle是一款国外开源的ETL(Extract Transform Load)工具,纯java编写,可以在Windows.Linux.Unix上 ...
- Jenkins构建项目帮助文档
Jenkins构建项目帮助文档 主要步骤 一.配置jdk 1.1. 下载jdk,安装到自己电脑磁盘的Java目录下(比如:D:\Java\jdk). 1.2. Jdk环境变量的配置: 1. 鼠 ...
随机推荐
- javaHDU1003Max Sum
import java.util.Scanner; public class Sum {public static void main(String args[]) {Scanner cin=n ...
- Apache 配置多端口 多虚拟主机 局域网访问
\wamp\bin\apache\Apache2.4.4\conf\extra\httpd-vhosts.conf 修改如下 NameVirtualHost *:80 Documen ...
- C#迭代语句
1,do while语句 do语句重复执行语句或者语句块,直到指定的表达式为false为止.循环体如果为单个语句,可以不放在{}内,如果不是,那么必须放在{}内.如下面的代码 Codeint i=0; ...
- jqery选择器
根据可见性 属性 匹配元素 <!doctype html> <html lang="en"> <head> <meta charset=& ...
- 转载---SQL Server XML基础学习<3>之--FOR XML EXPLICIT
--使用 RAW 和 AUTO 模式不能很好地控制从查询结果生成的 XML 的形状.--但是,对于要从查询结果生成 XML,EXPLICIT 模式会提供非常好的灵活性. --必须以特定的方式编写 EX ...
- ASP.NET 设计模式(转)
Professional ASP.NET Design Patterns 为什么学习设计模式? 运用到ASP.NET应用程序中的设计模式.原则和最佳实践.设计模式和原则支持松散耦合.高内聚的代码,而这 ...
- CAS Server 单点登录开源项目
https://www.apereo.org/cas/download This project contains code that can extent an existing ASP.NET w ...
- 搭建Spring、Spring MVC、Mybatis和Freemarker
搭建Spring.Spring MVC.Mybatis和Freemarker 1.pom文件 <project xmlns="http://maven.apache.org/POM/4 ...
- Ext.Net学习笔记04:Ext.Net布局
ExtJS中的布局功能很强大,常用的布局有border.accordion.fit.hbox.vbox等,Ext.Net除了将这些布局进行封装以外,更是对border进行了一些非常实用的改进,让我们来 ...
- NET异步调用Webserver
之前,有个同事跑来问我一堆的什么多线程异步进行调用Sap的服务再突然把进程关闭,还说要设置一个循环判断调用的结果,搞得我听的一头雾水,但是我明显感觉到他的设计思路已经渐行渐远了...已经再偏远的山区中 ...