一个高水平客户端应用 UI 的开发者,通常需要满足以下的一些条件:
- 熟悉跟渲染有关的基本概念,比如 2D 绘图,光栅化,合成;
- 对所使用 UI Toolkit 的渲染流水线有较深的了解;
- 掌握 UI Toolkit 里面的 View/Layer 等概念,知道在满足布局/交互的需求下,如何构建一个性能最佳的 View/Layer Hierarchy;
- 掌握 UI Toolkit 提供的性能分析工具,能够对应用的 UI 性能(交互/动画)进行分析,找出性能瓶颈;
- 掌握常见的最佳实践和优化技巧;
虽然上述条件略高,但是满足条件或者起码部分满足条件的客户端开发者数量上应该还是不少的。国内互联网公司里面,比较成熟的客户端应用开发团队,起码都会有一两位。
假设我们把上述条件稍微进行修改,写一个针对页端的 WebApp UI 开发者的版本:
- 熟悉跟渲染有关的基本概念,比如 2D 绘图,光栅化,合成;
- 对浏览器内核的渲染流水线有较深的了解;
- 掌握浏览器内核里面的 DOM/Render Layer/Compositing Layer 等概念,知道它们之间的映射关系,知道在满足布局/交互的需求下,如何构建一个性能最佳的 Compositing Layer Hierarchy;
- 掌握浏览器提供的性能分析工具,能够对 WebApp 的 UI 性能(交互/动画)进行分析,找出性能瓶颈;
- 掌握常见的最佳实践和优化技巧;
假如我们使用上述条件进行过