iOS开发涉及的架构&框架

客户端整体架构

1 独立于App的通用层(时长统计 网络请求 )
2 通用业务层(本公司通用的组件等)
3 中间层(用于解耦)
4 业务层

复杂页面架构

一、MVVM框架思想
二、ReactNative数据流思想

在判定哪个View需要更新时先根据二叉树反向回到根节点,再由根节点自顶向下的遍历来判定哪个节点需要更新

三、系统UIView的更新机制思想
四、FaceBook的开源框架AsyncDisplayKit关于预排版的设计思想

图片缓存

一、图片读写

以图片URL的单向Hash值作为Key

二、内存设计

内存设计需要考虑以下几个问题:
1 内存存储的大小
(例如 10k以下的图片存储100张 10k-50k存储50张 50k以上的存储10张),应对其大小做限制,不能在内存中无限存储图片)
2 淘汰策略
(1. 队列先进先出FIFO的方式淘汰)
(2. LRU算法[又称为最近最久未使用算法 使用双向链表来实现(之所以使用双向链表不使用单向链表是为了方便对期中摸个节点的删除操作)])(LRU算法详解)

三、磁盘设计

磁盘设计需要考虑以下几个问题:
(1. 存储方式)
(2. 大小限制 如100M)
(3. 淘汰策略 如存储时间超10天)

四、网络设计

网络设计需要考虑以下几个问题:
(1. 图片请求的最大并发量)[如何设计???待完善]
(2. 图片请求的超时策略)[如何设计???待完善]
(3. 请求优先级)[如何设计???待完善]

附带--图片解码

1 对于不同格式的图片解码应用策略模式(???待完善)对不同的图片格式进行解码
2 哪个阶段做图片的解码处理(1 磁盘读取之后 2 网络请求返回之后)

附带--线程处理

在图片缓存框架中如何考量线程的相关使用及处理 [如何设计???待完善]

阅读时长统计

时长统计框架的设计

一、记录器

1 页面式
2 流式
3 自定义式

二、记录管理者

1 记录缓存(如何处理记录数据的丢失 1 定时写入磁盘 2 限定内存缓存条数[如限制10条 超过该条数则立即写入磁盘])
2 磁盘存储
3 上传器(1 延时上传 2 立即上传 3 定时上传)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 图片缓存 阅读时长统计 复杂页面架构 客户端架构 架构&框架 模块化 分层 解耦 降低代码的重合度 图片缓存 怎么...
    KAKA_move阅读 422评论 0 0
  • iOS架构/框架的作用模块化分层解耦降低代码重合度 缓存框架 image.png图片经过什么方式进行读写,过程是怎...
    Li_Po阅读 2,044评论 0 3
  • 相关方面图片缓存阅读时长统计复杂页面架构客户端整体架构 目的:模块化分层解耦降低代码重合度 一. 图片缓存 1. ...
    coder1003阅读 321评论 0 0
  • 13.1.架构&框架 问题一: 架构&框架是什么? 引入框架&架构,主要是为了实现 模块化。 然后再做一个相应的 ...
    望穿秋水小作坊阅读 316评论 0 0
  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    极客学院Wiki阅读 7,384评论 0 3