美文网首页
iOS 设计文档

iOS 设计文档

作者: _冇毒 | 来源:发表于2019-03-01 17:18 被阅读0次

    引言

    • 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编码规范, 提高代码可读性

    未完待续

    相关文章

      网友评论

          本文标题:iOS 设计文档

          本文链接:https://www.haomeiwen.com/subject/qpzduqtx.html