Flutter’s widgets are lightweight, in part due to their immutability.
Because they aren’t views themselves, and aren’t directly drawing anything,
but rather are a description of the UI and its semantics that get “inflated”
into actual view objects under the hood.

Flutter includes the Material Components library.
These are widgets that implement the
Material Design guidelines. Material Design is a
flexible design system optimized for all platforms,
including iOS.

But Flutter is flexible and expressive enough to implement any design language.
For example, on iOS, you can use the Cupertino widgets
to produce an interface that looks like Apple’s iOS design language.

How do I update widgets?

In Android, you update your views by directly mutating them. However,
in Flutter, Widgets are immutable and are not updated directly,
instead you have to work with the widget’s state.