For more information, see Animation & Motion widgets,
the Animations tutorial, and the Animations overview.

Drawing on the screen

In UIKit, you use CoreGraphics to draw lines and shapes to the
screen. Flutter has a different API based on the Canvas class,
with two other classes that help you draw: CustomPaint and CustomPainter,
the latter of which implements your algorithm to draw to the canvas.

To learn how to implement a signature painter in Flutter,
see Collin’s answer on StackOverflow.

Widget opacity

In UIKit, everything has .opacity or .alpha.
In Flutter, most of the time you need to
wrap a widget in an Opacity widget to accomplish this.

Custom Widgets

In UIKit, you typically subclass UIView, or use a pre-existing view,
to override and implement methods that achieve the desired behavior.
In Flutter, build a custom widget by composing smaller widgets
(instead of extending them).