Summary
In this chapter, we explored the relationships between the Widget
, Element
, and RenderObject
trees. We learned how to avoid rebuilds of the Widget
and Element
trees by scoping the StatefulWidget
s and subscriptions to inherited widgets, as well as by caching the widgets via const
constructors and final
initializations. We also learned how to limit repaints of the render object subtrees, as well as how to effectively work with scroll views.
In Chapter 2, we will explore how to make our already performant interfaces responsive on the ever-growing set of devices. We will cover how sizing and layout work in Flutter, how to fix overflow errors, and how to ensure that your application is usable for all users.