Flutter 渲染机制 - 聚沙成塔--掘金小册课程推荐/优惠
版权声明
本站非掘金小册官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
课程介绍
你将获得
- 揭开表象,从本质上分析 Flutter 框架核心类;
- 认清构建过程中三棵树节点的作用和相互关系;
- 探索元素树和渲染树中数据结构实现的细节;
- 从根本上领悟 Flutter 构建和渲染期间的流程。
作者介绍
张风捷特烈,Flutter 全端开发工程师、FlutterUnit 开源项目作者。FlutterUnit 是一款帮助刚入门的朋友快速认识 Flutter 的应用,它包含绝大多数 Flutter 内置组件及绘制的展示案例。
作者本人热爱探索源码、分享知识。除了出版过《Flutter 之旅》以外,还在掘金上线了其他 5 门课程:
- 《Flutter 绘制指南 - 妙笔生花》
- 《Flutter 动画探索 - 流光幻影》
- 《Flutter 手势探索 - 执掌天下》
- 《Flutter 滑动探索 - 珠联璧合》
- 《Flutter 布局探索 - 薪火相传》
- 公众号
编程之王
小册介绍
通过前面 绘制
、 动画
、手势
三本小册,对 Framework
层的 Painting
、Animation
、Gestures
进行了单独的研究。之后又通过 布局
和 滑动
两个小册,以 Widgets
层为切入点,通过对 滑动
和 布局
组件的源码研究,认识了 Rendering
层的一些知识。
而本册将站在更高的视角,去探索 Flutter 框架中从 Widget
到渲染到屏幕之上,所经历的所有流程。在此期间,我们会遇到到被框架封装的各种角色,认识他们的作用和关系。可以从全局的视角去看待 Widget
的分类、去理解 State
的价值、去见证在界面更新中的对象的变与不变。
你会学到什么
对于渲染机制来说,主要包括两个方面:构建流程 和 渲染流程 。本册针对这两个方面,分为4个模块:
模块一:从 runApp 开始探索,逐步了解三棵树的概念,及形成过程。 一开始,单刀直入,直指构建核心,探索 Widget
是如何从一个配置信息结构,一步步使 元素树
和 渲染树
成型的。大家也许都知道在框架内有树
的概念,但应该很少人知道: 元素树
和 渲染树
的数据结构在实现上是有很大差异的,这也是我们想要主要探索的。
模块二:了解 Element 和 Widget 的族系衍生,以及 State 和 Key 在更新时的作用 。 我们都知道 Widget
在 Flutter
中非常多和繁杂,从表面上很难去对它们进行归类,不识庐山真面目
,只缘身在此山中
。但从源码的角度,就可以跳出表象的束缚,从根源上其去发现共性,思考它们进行族系分化的必要性和意义。这是理解 构建流程
非常重要的模块。
模块三:探索 WidgetsBinding 的初始化与两个 Owner 的源码实现。 这一部分会从 WidgetsBinding
初始化流程中,学到很多 mixin
相关的使用细节。另外从源码分析两个非常重要的管理者,BuildOwner
用于管理 构建流程
中的Element
;PipelineOwner
用于管理 渲染流程
中的 RenderObject
。抓住这两个对象,就相当于拿捏了渲染机制的命脉,这里也为后面探索渲染流程打下基础。
模块四:对渲染流程进行分析,探索 RenderObject 、Layer 的源码核心和总结篇。 这是最后一块,探索 RenderObject
是如何工作的,Layer
是如何形成树的,最终又是什么决定屏幕渲染内容的。最后,会对本册进行一个总结,从全新的视角去认识 Flutter
框架。
最后:由于纯手工码字
以及认知的局限性,如果本册内容上有什么错误
、疑问
、错别字
或修改建议
,可在评论区指正,或直接联系我进行探讨 ~
适宜人群
- 对 Flutter 有一定的基础,熟练掌握 Dart 语法的朋友;
- 想全面了解框架底层的核心知识,进一步提升的 Flutter 工程师;
- 想提升自身读码能力或有兴趣探索源码;
- 有一颗心平气和、勇于探索的心。
课程目录
- 开篇: 欢迎进入 Flutter 渲染机制
- 探索多子渲染对象、元素的数据结构
- 从 runApp 方法到三树首脑会晤
- 初识元素节点的挂载和三树成型
- 探索单子渲染对象、元素的数据结构
- 探索组合型组件、元素存在的意义
- 探索状态类 State 源码实现与价值
- 探索节点更新时的变与不变
- 组件、元素、渲染对象关系梳理
- 探索多子元素更新和 Key 的作用
- 探索代理组件、元素的实现与价值
- 探索 PipelineOwner 渲染管线
- 探索 WidgetsBinding 的初始化
- 探索 BuildOwner 构建管理器
- 探索 RenderObject 的绘制与布局
- 探索 Layer 树与 Scene 的构建
- 终结篇: 立于渲染机制之上的风采