Rendering native controls in a Flutter app

Because Flutter content is drawn to a texture and its widget tree is entirely
internal, there’s no place for something like an Android view to exist within
Flutter’s internal model or render interleaved within Flutter widgets. That’s a
problem for developers that would like to include existing platform components
in their Flutter apps, such as a browser control.

Flutter solves this by introducing platform view widgets
(AndroidView
and UiKitView)
that let you embed this kind of content on each platform. Platform views can be
integrated with other Flutter content4. Each of
these widgets acts as an intermediary to the underlying operating system. For
example, on Android, AndroidView serves three primary functions:

Making a copy of the graphics texture rendered by the native view and
presenting it to Flutter for composition as part of a Flutter-rendered surface
each time the frame is painted.