iOS 设计文档

引言

  • APP 采用object-C 与 Flutter 混编的形式开发, 未使用storyboard, 基本不使用xib (个别极简页面可以采用xib).

理由:
storyboard 和 xib 均为xml构造, 不便于代码合并. 同时也不便于后期维护
Flutter推荐理由

  • 采用MVVM设计模式. 低耦合性, 可重用性更高
  • 集成Bugly进行bug统计
  • 网络请求基于AFNtework
  • 布局采用Masonry
  • 图片加载采用SDWebImage
  • 使用cocoapods对三方库进行统一管理,使用方便,清晰明了

项目版本管理

  • 团队开发, 采用gitlab 对版本进行统一管理

开发环境

  • 操作系统: mac os
  • 开发软件: xcode 10

开发模式

安全策略

  • 网络请求采用 https
  • 密码通过MD5, base64 等加密方式进行处理

数据存储方式

  • 根据项目需要. 基本字段采用 NSUserdefuat 存储
  • 项目数据缓存采用sqlit的方式进行存储
  • plist文件写入作为一个备选项

三方库导入方式

  • 采用cocoapods统一管理的方式


    iOS 设计文档_第1张图片
    cocoapods

框架目录结构

iOS 设计文档_第2张图片
结构图

工具箱

iOS 设计文档_第3张图片
全局结构
Base类
- 继承关系图
iOS 设计文档_第4张图片
Base.png
- Base结构图
iOS 设计文档_第5张图片
结构图.png
Tool类
iOS 设计文档_第6张图片
Tool

界面布局

  • 主要使用Masonry 进行界面约束
  • 部分动态页面可能会使用frame预计算的方式

事件处理

  • 常用的事件处理方式(KVC, 通知, delegate, block)基本都会使用到.
  • 还会尝试加入一下 cocbjc

模型转换

  • 因为项目中已集成YYKit框架. 所以决定使用YYModel来进行dictionary与model之间的转换

登录, 支付功能

  • 对微信, 支付宝支付功能进行封装
  • 登录目前只使用到了微信登录

第三方 (定位, 分享, 推送, 登录, 统计, IM)

  • 定位:
    使用高德地图进行定位
  • 分享:
    延用现在的友盟分享, 并对其进行二次封装
  • 推送:
    延用现有的友盟推送
  • 统计:
    延用现有的友盟分享
  • IM
    使用融云集成
  • bugly 统计线上bug

打包方式

  • 打包方式采用基于fir的自动化部署

代码规范

  • 遵循 Objective-C编码规范, 提高代码可读性

未完待续

你可能感兴趣的:(iOS 设计文档)