Animation
The Animation class contains a value and a "state" and another important part is that they inherit the Listenable class which makes it possible to use in combination with widgets like AnimatedBuilder or ValueListenableBuilder.
Curved Animation
This is super useful when we want to take an ordinary animation and apply a curve to it. With a staggered animation we want to apply the Interval which is actually a Curve but also takes a Curve, might be a bit confusing but very powerful.
FadeTransition
This widget automatically animates a fade to the child widget. It just needs an Animation or to be more correct.. a Listenable.