版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012876214/article/details/85117502
作为一名工作了不短时间的iOS开发者,对一个完整的App所包含的功能模块有一点自己的认识。这里进行一个总结。
- 全局宏定义
打印函数、屏幕尺寸、weakself、iOS版本号、单例、去除警告等宏定义,配合预编译文件使用。 - Category
相关类的Category,提供辅助功能,例如:提供使用十六进制数创建颜色的功能、图片旋转的函数等。 - 加密(Security)
用于网络信息或本地数据的加密。如md5等. - 路径管理(PathManager)
获取各种路径,例如数据库路径等(Documents)。 - 三方库
涉及到的三方库,常用的有FMDB、AFNetworking、MBProgressHUD、SDWebImage等。
- Crash收集模块(CrashLogger)
用于收集线上出现的crash,网络连通后传给服务器进行汇总,帮助开发解决问题. - 升级模块(UpgradeManager)
监测新版本,根据服务器设置的版本升级策略(强制升级 or 可选升级)提醒用户升级到最新版本。 - 评价App模块(EvaluateManager)
用户使用一段时间或使用某种功能之后触发评价界面,引导用户对该App进行评价。需要指定合理的触发条件。 - 重新登录
检查账号状态,token或uid错误时,或多终端问题,让App自动退出登录。
- 网络通信模块Network
网络通信模块是App的基本模块。本人的一般做法是使用AFNetworking作为底层调用,再对其封装一层NetworkManager,上层定义Interface类,通过Interface->NetworkManager->AFN方式实现接口的调用。此外,网络通信模块还需要增加网络状态监听的功能,对于网络状态的改变作出不同的反应。 - 缓存
缓存模块是App的另一个基本模块。本人的一般做法是使用FMDB作为访问SQLite的工具,基于FMDB再对其封装一层DBManager,执行数据库创建、表格创建、查询、删除等基本操作,其中也需包括数据表结构升级功能,即当新版本App新增了数据库表中的字段,在不重建表的前提下直接为原有表新增字段。创建表时,建议每个字段都增加default值。
- nil判断处理
一般处理NSArray和NSDictionary元素为nil时的问题。NSArray和NSDictionary若添加了nil的内容,会导致crash。为了防止crash,需要对NSNull进行处理。 - 图片管理器
若App涉及到图片的处理和传输,建议创建专有类进行管理。 - 轮询管理器(PollingCenter)
针对需要轮询功能的App.
持续补充中…