Rather than returning a single value, the animate function returns a new Animation that incorporates the tween.
This approach is most useful when you want to give the newly created animation to another widget, which can then read the current value that incorporates the tween as well as listen for changes to the value.