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统一管理的方式
    cocoapods

框架目录结构

结构图

工具箱

全局结构

Base类
- 继承关系图

Base.png

-  Base结构图

结构图.png

Tool类

Tool

界面布局

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

事件处理

  • 常用的事件处理方式(KVC, 通知, delegate, block)基本都会使用到.
  • 还会尝试加入一下 cocbjc
    ###模型转换
  • 因为项目中已集成YYKit框架. 所以决定使用YYModel来进行dictionary与model之间的转换

登录, 支付功能

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

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

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

打包方式

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

代码规范

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

未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值