The progress field is defined as a floating value,
and is updated in the _updateFormProgress method.
When all three fields are filled in, _formProgress is set to 1.0.
When _formProgress is set to 1.0, the onPressed callback is set to the
_showWelcomeScreen method. Now that its onPressed argument is non-null, the button is enabled.
Like most Material Design buttons in Flutter,
TextButtons are disabled by default if their onPressed and onLongPress callbacks are null.

Notice that the _updateFormProgress passes a function to setState().
This is called an anonymous
function and has the following syntax:

    
methodName(() {...});
    
    Where methodName is a named function that takes an anonymous
callback function as an argument.

The Dart syntax in the last step that displays the
welcome screen is:

    
_formProgress == 1 ? _showWelcomeScreen : null