iOS_组件化开发

思路:将网络、本地存储等封装成基础组件,将用户、活动等封装成业务组件.然后将这些组件使用cocoapods 私有库集成,在主项目中pod install进行使用.
组件间通讯:使用roter或者抽出来一个专门用来通信的类.

  • 图片缓存
    内存缓存 磁盘缓存 网络下载
    图片解码/图片压缩.解压缩
    图片是通过什么方式进行读写?以及它的过程
    以图片的url的单向hash作为key
    先去内存,然后磁盘查找,然后网络下载.
    内存的设计:
    存储的Size: 10kb的最多能存储50个 100kb的存20个
    淘汰策略: LRU算法:最近最久未使用算法,对比时间
    磁盘的设计:
    存储方式:
    大小限制:
    淘汰策略: 存储时间距离今天7天
    网络下载:
    图片下载的最大并发量
    请求优先级
    请求超时策略
  • 阅读时长统计框架
    记录器:页面式的记录场景、流式页面的记录场景、自定义式
    记录管理者:记录缓存、磁盘缓存、上传器
    延时上传:前后台切换、从无网到有网、轻量接口捎带
  • 复杂页面架构
    网络层、业务层、数据层
    facebook开源的asyncDisplayKit预排版
  • rn数据流思想:视图组合可以看成一颗多叉树,互动的页面数据传递到根节点,然后又根节点往下分发询问是否要更新视图.
  • 客户端整体架构
    openurl 依赖注入(中间层)


    sdwebImage

    asyncDisplayKit

你可能感兴趣的:(iOS_组件化开发)