1. 工程化

  2. 组件化:化整为零,各自独立的思想,不单单是为了复用。

  3. 组件独立编译

  4. InputProcessOutput,IP => O

  5. 实现机制:URL-Block、Protocol-Class、CTMediator,前两者需要注册,最后一个无须注册。注册必定会额外耗费启动时间,且要注意注册的时序问题,可以在Mac-O层面去做优化。

  6. 容器化

包体积瘦身方案:

  1. 静态资源压缩,收益比较小。

  2. 重复资源去重,使用脚本在构建时扫描ImageName然后统一替换为md5,这样达到所有地方在构建时用到的都是同一个资源,没有重复。

  3. 相似资源去重,需要用一些机器学习的工具进行扫描,但需要谨慎处理,得业务方进行评判是否可以去重。

  4. 资源动态下发:可以分版本进行下发=>进一步进行增量下发。

  5. 代码层面去重。

Podfile中的组件版本号,使用索引库来管理,保证不同环境不同版本每次拉取到的组件版本号都是最新的。

做二进制加快编译速度,需要注意二进制与源码编译的ARC对齐问题

标签: 组件化

添加新评论

0%