Animation concepts section uses an

AnimationController
  abstracts away the work of interpolation,
  allowing you to reason about and create an animation
  in terms of its duration, and the starting and ending
  values of the property that you are animating:

AnimationController doesn’t know anything about the UI

Access animation values with controller.value

AnimationController provides a value property.
You can access this property directly—there
is no getter method for value:

print

controller

value

);

Curves

Use CurvedAnimation

you can use presets, or create your own

Tweens

To use a Tween call animate() passing in the controller. (example)

AnimatedBuilder

AnimatedWidget

TODO:

Explain that setState listener boilerplate isn’t normal.