For example, you might use CurvedAnimation
to implement an animation along an interpolated curve.
In this sense, the controller is the “master” source of the animation progress
and the CurvedAnimation computes the curve
that replaces the controller’s default linear motion.
Like widgets, animations in Flutter work with composition.

When building the widget tree, you assign the Animation
to an animated property of a widget,
such as the opacity of a FadeTransition,
and tell the controller to start the animation.

The following example shows how to write a FadeTransition that fades
the widget into a logo when you press the FloatingActionButton:

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

How do I draw/paint on the screen?