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即时聊天服务
分享组件服务
日志组件服务
系统环境组件服务
地图_位置服务
数据库服务
权限组件服务
...
iOS项目目录结构的更多相关文章
- MVVM 模式下iOS项目目录结构详细说明
➠更多技术干货请戳:听云博客 我们在做项目的时候,会经常用到各种设计模式,最常见的要数 MVC (模型,视图,控制器)了.但是,今天我们要说的是另一种设计模式——MVVM. 所以 MVVM 到底是什么 ...
- 分享我设计的iOS项目目录结构
公司新项目就要着手研发了,希望能为这个项目多准备点知识.回想自己做过的项目,目录结构的划分总不如我的心意,有些目录命名不规范导致表达不明确,有些目录因为不具有代表性,导致在实际中不能充分发挥作用,导致 ...
- IOS项目目录结构和开发流程
网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法. 目录结构 AppDelegate Models Macro Genera ...
- iOS开发总结——项目目录结构
1.前言 清晰的项目目录结构有利于项目的开发,同时也是软件架构的一部分,所以,项目开发之初搭建项目的目录结构很重要.刚转iOS时,自己并不知道如何搭建App的项目目录,在参与开发两个应用后,结合Web ...
- Laravel项目目录结构说明
Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...
- 1-5Tomcat 目录结构 和 web项目目录结构
对应我的安装路径: web项目目录结构
- Android开发学习之路--Android Studio项目目录结构简介
既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图: 1.Android工程 manifests ...
- 【Android Studio安装部署系列】三、Android Studio项目目录结构
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 简单介绍下Android studio新建项目的目录结构. 常用项目结构类型 在Android Studio中,提供了以下几种项目结 ...
- vue项目目录结构
VUE项目目录结构 如上图所示,我们的目录结构就是这样的了. 目录/文件 说明 build 这个是我们最终发布的时候会把代码发布在这里,在开发阶段,我们基本不用管. config 配置目录,默认配置没 ...
随机推荐
- Datatable的Select()
利用datatable的select方法筛选出符合条件的datarow进行操作 Select() Select(string filterExpression) Select(string filte ...
- linux下VNC的配置及使用
我们知道在windows里面有远程桌面(著名的有pcanywhere,网络人等)对吧,在linux下我们同样有这个东西,其中最流行的一种就是VNC,其实VNC是一种协议,它的全称是virtual ne ...
- javascript Date format(js日期格式化)
这个用这比较爽,记录一下// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年( ...
- 自然语言21_Wordnet
QQ:231469242 欢迎喜欢nltk朋友交流 http://baike.baidu.com/link?url=YFVbJFMkZO9A5CAvtCoKbI609HxXXSFd8flFG_Lg ...
- JavaWeb学习笔记——开发动态WEB资源(三)显示当前时间
该工程的功能是实现在页面中显示当前的时间 以下的代码是HelloServlet.java中的代码 package helloapp2; import java.io.IOException; impo ...
- MySQL 随机取数据效率问题
本文详细解说了MySQL Order By Rand()效率优化的方案,并给出了优化的思路过程,是篇不可多得的MySQL Order By Rand()效率美文. 最近由于需要大概研究了一下MYSQL ...
- os模块之popen
想查看当前目录下有哪些东西,可以使用os.popen()方法,代码如下: t = (os.popen("dir")) print(t.read()) #运行结果 C:\python ...
- ecshop 订单编号 get_order_sn
文件地址include/lib_order.php ,要引用需要先导入 lib_order.php require_once(ROOT_PATH . 'includes/lib_order.php') ...
- ecshop 调用收货地址
html {insert_scripts files='region.js,utils.js'} <script type="text/javascript"> reg ...
- sqlmap的一些小技巧
前言 很多人都使用sqlmap来进行SQL注入测试,但是很多人只是简简单单的current-user,current-db,-D,-T,--dump这样子来做,其实sqlmap还有很多很强大的功能,这 ...