Changing screens needs to be smooth from a user experience perspective. We have seen that Navigator widgets work on an Overlay to manage Routes. The transition between routes is also managed at this level.
As we have seen, MaterialPageRoute and CupertinoPageRoute are classes that add a modal route to the overlay with a platform-adaptive transition between the old and new Route.
On Android, for example, the entrance transition for the page slides the page upward and fades it in. The exit transition does the same in reverse. On iOS, the page slides in from the right and exits in reverse. Flutter also lets us customize this behavior by adding our own transitions between screens.