Key information:

When the user taps the InkWell containing the source hero,
the code creates the destination route using MaterialPageRoute.
Pushing the destination route to the Navigator’s stack triggers
the animation.

The Container positions the PhotoHero in the destination
route’s top-left corner, below the AppBar.

The onTap() method for the destination PhotoHero
pops the Navigator’s stack, triggering the animation
that flies the Hero back to the original route.

Use the timeDilation property to slow the transition
while debugging.

Radial hero animations

What's the point?

A radial transformation animates a circular shape into a square
shape.

A radial hero animation performs a radial transformation while
flying the hero from the source route to the destination route.

MaterialRectCenter­Arc­Tween defines the tween animation.

Build the destination route using PageRouteBuilder.