App模块组成

版权声明:本文为博主原创文章,未经博主允许不得转载。 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.

持续补充中…

猜你喜欢

转载自blog.csdn.net/u012876214/article/details/85117502
今日推荐