写在前面
从2013年12月实习就算是踏上了iOS开发的不归路,到现在为止还剩三个月就两年了。从一开始只知道堆代码,到现在开始重视优化业务流程,这之间一直在摸索学习,积累了一些经验,也从前辈那里学到了不少东西。有大神说”iOS开发是一个创造活动,不是一个科研过程,一切以产品为导向。摒弃研究思维,转向系统思维和创造思维。你就算把iOS 所有的API烂熟于心,但却不懂如何设计和创造一个产品,也无济于事。”工程结构算是系统思维的一部分吧,今天借着写新项目的机会,我来介绍下我的iOS工程结构,仅供参考,欢迎建议反馈。
我的iOS工程结构
下面是我做iOS项目的一个工程结构:
主要包括以下group:
Resource:
资源库,包括图片、plist文件等。
Network:
网络处理层(RTHttpClient),封装了基于AFNetworking的网络处理层,通过block实现处理结果的回调,上层调用者是Handler层;
Handler:
系统业务逻辑层,负责处理系统复杂业务逻辑,上层调用者是ViewController;
Application:
这个group中放的是AppDelegate和一些系统常量及系统配置文件;
BaseClass:
一些基本父类,包括父ViewController和一些公用顶层自定义父类,其他模块的类一般都继承自这里的一些类;
Categories:
类别,对现有系统类和自定义类的扩展;
Storage:
简单数据存储,主要是一些键值对存储及系统外部文件的存取,包括对NSUserDefault和plist存取的封装;
Utils:
系统工具类(AppUtils),主要放置一些系统常用工具类;
View:
视图层,这里放的都是继承于UIView的视图,将视图从ViewController中分离出来全部放在这里,这样能保持ViewController的精简;
Controller:
系统控制层,放置ViewController,均继承于Group Base中的BaseViewController或BaseTableViewController;
Model:
系统中的实体,通过类来描述系统中的一些角色和业务,同时包含对应这些角色和业务的处理逻辑;
Database:
数据层,封装基于FMDB的sqlite数据库存取和管理(RTDatabaseHelper),对外提供基于Model层对象的调用接口,封装对数据的存储过程。
以上就是我的iOS工程结构的简单介绍。