美文网首页
一次简单的优化总结 - iOS

一次简单的优化总结 - iOS

作者: iOS资深入门 | 来源:发表于2023-04-10 21:36 被阅读0次

项目情况

  • AppDelegate三方库初始化较多,-didFinishLaunchingWithOptions:首屏展示慢。
  • 三方库手动导入,文件目录混杂。
  • MVC架构,ViewController过于臃肿。View不方便复用。
  • 部分地方没有model,重复的做着数据解析。
  • 过度依赖Base类,耦合严重,违反OO原则
  • 过度依赖ShareManager单例类,耦合严重,数据混杂。

优化操作

1.AppDelegate

  • 使用PromisesObjC对三方库进行懒加载,异步初始化。减少启动时处理时间。
  • 分享、通知等回调使用责任链模式下发到各自handler处理。耦合性低,符合单一责任原则

成果:
AppDelegate -didFinishLaunchingWithOptions:执行时间减少0.3秒。
AppDelegate 代码拆分由3000行到170行。

2.架构

  • 网络框架重新封装,进行公共报错处理。使用方便。
  • MVC改为MVVM,对ViewController解重,由ViewModel去请求数据,使用MVVM+RAC进行响应式编程。(耦合低,逻辑清晰,易维护)
  • View由XIB+AutoLayout改为masonry。(易修改,易复用。)
  • UI之外的任务使用PromisesObjC进行多纯种异步处理,还可对任务失败重试、任务依赖管理等。减少主线程任务,避免UI卡顿。充分使用多线程优势。
  • 使用YYModel进行字模转换,网络数据解析、传值、使用方便。
  • 使用CocoaPods管理三方库,方便安装、卸载、更新。

3. Base类

根据OO原则,对代码进行拆分。

  • 只保留部分UI样式设置
  • 公共跳转、弹窗、公共方法分别封装。

成果:
Base类 8000多行代码拆分,最后220行。
逻辑清晰,耦合性低,可靠易维护,BUG出现概率少。

4.ShareManager

  • 用户信息由AccountManager进行维护处理。
  • 配置信息由AppConfig进行维护。

优化初步成果:

编译时间:从178减少到123秒。减少了55秒。
源码大小:之前113.5M,优化后106.8M。(不包括三方库)
源码文件个数:之前8530,优化后8038。(不包括三方库。
Archive后包大小:之前197.7M,优化后148.5M。

image.png

Xcode显示编译时间方法:

//1、终端执行下方代码
$ defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
//2、重启Xcode。

相关文章

网友评论

      本文标题:一次简单的优化总结 - iOS

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