Currently in heroes.dart:
Animation<double> get animation {
return CurvedAnimation(
parent: (type == HeroFlightDirection.push) ? toRoute.animation : fromRoute.animation,
curve: Curves.fastOutSlowIn,
);
}
Curves.fastOutSlowIn looks decent for an entry curve, however when the hero animation is played in reverse when going to the previous route, you get something like the following:

This could be solved by checking HeroFlightDirection.push/pull and flipping the curve if necessary, but IMO it would make more sense to allow the user to specify curve and reverseCurve like most of the other animation APIs we have. curve would naturally be flipped when going backwards if reverseCurve isn't specified.
When I was working on improving the animations of CupertinoPageRoute, the Hero animation of the title becoming the back button was the one thing I couldn't alter, since there isn't an API to specify a reverse curve. Example (watch the Colors title):

Currently in
heroes.dart:Curves.fastOutSlowInlooks decent for an entry curve, however when the hero animation is played in reverse when going to the previous route, you get something like the following:This could be solved by checking
HeroFlightDirection.push/pulland flipping the curve if necessary, but IMO it would make more sense to allow the user to specifycurveandreverseCurvelike most of the other animation APIs we have.curvewould naturally be flipped when going backwards ifreverseCurveisn't specified.When I was working on improving the animations of
CupertinoPageRoute, the Hero animation of the title becoming the back button was the one thing I couldn't alter, since there isn't an API to specify a reverse curve. Example (watch the Colors title):