⚠ This article covers a previous version of Simple Animation. The basics stay the same but class names have changed.

When creating custom animations in Flutter at some point you get in touch with Flutter’s AnimationController that connects rendering requests with your Animatable, like tweens. For each rendered frame it computes a value between 0.0 and 1.0 depending on it’s current animation execution and passes it to your tweens.

Adding an AnimationController to your widgets is a little more overhead in code than are you are used to. That’s why the Simple Animations package provides you with some easy-to-animate widgets like ControlledAnimation.

But in some situations it’s inevitable to use AnimationController to have precise control over your custom animations. Aspects like dependencies to other states of the app or changing animation durations may want you to use an AnimationController .

When you look into Flutter’s regular AnimationController you will find out that it’s possibilities are quite limited:

You can just tell it to do one thing (animate forward / reverse) but not declare your animation plan.

your animation plan. You can’t tell it to consider external circumstances .

. It’s not very extensible for other animation approaches.

for other animation approaches. The status management ( StatusListener ) is very limited. It just tells when it reaches 0.0 and 1.0 but nothing in between.

To solve these issues I am proud to introduce AnimationControllerX.