By contrast, Flutter minimizes those abstractions, bypassing the system UI
widget libraries in favor of its own widget set. The Dart code that paints
Flutter’s visuals is compiled into native code, which uses Skia for rendering.
Flutter also embeds its own copy of Skia as part of the engine, allowing the
developer to upgrade their app to stay updated with the latest performance
improvements even if the phone hasn’t been updated with a new Android version.
The same is true for Flutter on other native platforms, such as iOS, Windows, or
macOS.

From user input to the GPU

The overriding principle that Flutter applies to its rendering pipeline is that
simple is fast. Flutter has a straightforward pipeline for how data flows to
the system, as shown in the following sequencing diagram:

Let’s take a look at some of these phases in greater detail.

Build: from Widget to Element

Consider this code fragment that demonstrates a widget hierarchy:

source
code
for