When working with animations, we are not always going to be creating exactly the same animation objects, but we can find some similarities in use cases. Tween objects are useful for changing the type and range of an animation. We will be, most of the time, composing animations with AnimationController, CurvedAnimation, and Tween instances.
Before we use a custom Tween implementation, let's revisit our widget transformations from the last chapter by applying the transformation in an animated way. We will get the same final effect but in a smooth and better way.