Flutter › Implicit vs Explicit Animations
How can you properly convert a piece of code originally written using an implicit animation over to using an explicit animation instead, once your particular given animation's own requirements have genuinely grown considerably more complex over time?
IntermediateAnswer
As a given animation's own specific requirements genuinely grow more complex, such as genuinely needing to pause it partway through, precisely coordinate it together with another entirely separate animation, or repeat it a genuinely specific fixed number of times rather than simply continuously forever, converting from an implicit animation over to an explicit one typically involves introducing your own dedicated AnimationController, defining an appropriate corresponding Tween to properly represent your specific animation's own actual value range, and then replacing your original simpler implicit widget with an equivalent AnimatedBuilder or a Tween based transition widget instead, such as replacing AnimatedOpacity with the more explicit, lower level FadeTransition.
// Before: AnimatedOpacity(opacity: value, duration: duration, child: child)
// After: FadeTransition(opacity: controller, child: child)Real-world example A developer originally using AnimatedOpacity for a simple fade effect later genuinely needs to pause that specific animation partway through in direct response to a particular user action, and properly converts their existing code over to use an explicit AnimationController together with FadeTransition instead to genuinely gain that specific required additional level of manual control.