In this chapter, we have seen each of the available Flutter widget types and their differences. stateless widgets do not get rebuilt frequently by the framework; on the other hand, stateful widgets get rebuilt every time its associated State object changes (which could be when the setState() function is used, for example). We have also seen that Flutter comes with many widgets that can be combined to build unique UIs, and that they also do not need to be visual components on the user's screen; they can be layout, styling, and even data widgets, such as InheritedWidget. We have started the development of a small app that we will continue to develop in the next few chapters; we will be adding specific functions to it while we present new important concepts about Flutter.
In the next chapter, we will check out how to add user interaction to the app by adding responses...