AsyncDisplayKit 2.0 Tutorial: Getting Started
前言
“艺术是你任何能做到极致的事”
AsyncDisplayKit 是一个UI框架,最初诞生于 Facebook 的 Paper 应用程序。它是为了解决 Paper 团队面临的核心问题之一:如何尽可能缓解主线程的压力?
现在,许多应用程序的用户体验,很大程度上依赖于持续手势和物理动画。至少,你的UI可能是依赖于某种形式的 scrollView
。
这些类型的用户界面完全依赖于主线程,并且对主线程阻塞非常敏感。主线程阻塞将导致丢帧,降低用户的体验。
一些主线程开销较大的任务包括:
- 计算尺寸和布局:比如
-heightForRowAtIndexPath:
,或者在UILbel中调用-sizeThatFits
以及指数上升的AutoLayout‘s
布局计算。 - 图像解码:想要在一个 image view 中使用
UIImage
,首先要进行解码。 - 绘图:复杂的文本以及手动绘制渐变和阴影。
- 对象生命周期:创建,操纵和销毁系统对象(即创建一个UIView)
当正确使用时,AsyncDisplayKit 允许您在默认情况下异步执行所有测量、布局和渲染。无需任何额外的优化,一个应用程序可以减少约一个数量级的主线程开销。
除了这些性能优势,酷炫的 AsyncDisplayKit 还为开发者提供的便利接口,用简洁的代码就能完成复杂的功能。
在这两部分 AsyncDisplayKit 2.0 教程中,你将掌握使用ASDK构建一个实用的和动态的应用程序的所有要素。在第一部分中,你将要学习一些在你构建应用程序时可以用到的宏观思想。在第二部分中,你将学习如何构建自己 node 的 subclass,以及如何使用ASDK强大的布局引擎。为了更好的完成本教程,你需要会使用 Xcode 以及 熟悉 Objective-C。
免责声明:ASDK不兼容 Interface Builder和AutoLayout,因此,您将不会在本教程中使用它们,虽然ASDK完全支持Swift(除了ComponentKit),许多开发者仍在使用 Objective-C。免费App排行榜前100大多数都没有使用Swift(至少6个使用ASDK)。出于这些原因,本系列将重点介绍 Objective-C。话虽这么说,我们已经包括了一个Swift版本的实例项目。(嘴上说没有,代码还是很诚实的