《iOS开发高手》专栏学习总结

最近把《iOS开发高手》这一专栏的内容全部学完了,感觉受益匪浅,开阔了自己原来狭隘的技术栈视野。专栏讲述的都是与实际开发息息相关的内容,以 iOS 开发在各个阶段(开发、调试测试、发布和上线)中遇到的问题为切入点,讲解可以利用哪些技术、哪些方案来解决实际遇到的问题。是个很不错的课程,非常值得我们去学习。
接下来简单总结一下通过学习这一专栏,自己收获到的关键知识点,和一些能为我所用并且能很快地落地到自己项目中的技术。

  1. APP启动速度的优化
    对于这个问题,只有了解了APP在启动的过程中做了哪些事,才能对症下药。APP的启动主要包括三个阶段:
    第一阶段main() 函数执行前,做的优化可以包含
    1.减少动态库加载。如果使用动态库的数量较多时,尽量将多个动态库进行合并。
    2.删除没有使用的类或者方法。
    3.+load() 方法里的内容可以放到首屏渲染完成后再执行,或使用 +initialize() 方法替换掉。
    4.控制 C++ 全局变量的数量。

    第二阶段 main() 函数执行后,做的优化可以有
    梳理出哪些是首屏渲染必要的,哪些是 App 启动必要的,而哪些是只需要在对应功能开始使用时才需要的。将这些初始化功能分别放到合适的阶段进行。

    第三阶段首屏渲染完成后
    严禁调用会阻塞主线程方法

  2. Pod本地组件化
    组件化的好处在于将业务完全解耦,将通用功能下沉,每个业务都是一个独立的 Git 仓库,每个业务都能够生成一个 Pod 库,最后再集成到一起。由于业务的完全解耦,团队再也没必要花费大量的时间在沟通和定位排查上面。

  3. 无痕埋点方案
    无痕埋点利用了Runtime的Method Swizzling技术来实现。很好的解决了代码埋点和可视化埋点带来的工作量大、后期难以维护的问题。

  4. 利用 RunLoop 原理去监控卡顿
    原理其实也很简单,只要监听Runloop的kCFRunLoopBeforeSources 和 kCFRunLoopAfterWaiting这两个状态在设定的阈值(合理的时间)内没有发生改变即可判断为卡顿。这个时候再收集方法的调用堆栈信息,通过调用堆栈信息就可看出是在调用哪些方法的时候发生了卡顿。

  5. 实用的第三方工具和类库
    1.使用OCLint、Infer、Clang 静态分析器来协助我们在编写代码的阶段就能及时发现代码错误
    2.使用PLCrashReporter、Fabric或者Bugly来监控崩溃。
    3.使用A/B 测试来增强自己 App 的竞争力。
    4.利用PromiseKit构建底层的发布和订阅事件总线

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值