Congratulations! You have a button that changes its display
depending on which phase the button is in: not downloaded,
fetching download, downloading, and downloaded.
Now, the user can tap to start a download, tap to cancel an 
in-progress download, and tap to open a completed download.

Interactive example

Run the app:

Click the GET button to kick off a
simulated download.

The button changes to a progress indicator
to simulate an in-progress download.

When the simulated download is complete, the
button transitions to OPEN, to indicate
that the app is ready for the user
to open the downloaded asset.

Work with tabs

Create a nested navigation flow