An alternative situation is if only some of the app's features are not available.
In that case, you still wanna tell them what's happening,
possibly through a modal dialogue, but
let them use the rest of the app even if all the features aren't available.
Giving them the locus of control to correct that if that's what they wanna do.
So here's an example of that happening in the Apple Maps application.
So if you start from the home screen and this is my home screen.
And a user clicks on Maps in order to start the mapping application,
you may notice that my phone is currently in the airplane mode.
So it's not gonna be able to access any of the data in the network, so
when the map application loads up and
tries to download the data, it notices that the connection is failing and
it says, oh you need to turn off airplane mode or use WiFi to access data.
There's a button to clear the dialog, and there's a button to go to settings so
that the user can fix that if they want.
But if you hit OK, the app works fine, you can move around,
you don't see any of the background images.
You see the last Starbucks I was at, and
you can click on it, but you won't be able to get any information
from the internet until you fix the things that are a problem.
In some cases, the map app might work with cached data,
that was collected last time you were online, and so
there might be a certain area that you could scroll through.
But then if I decide to go to settings, or in this case I used the control panel from
the bottom, and I go from airplane mode and leave airplane mode, so
that my app can get all the data that it needs, then as soon as it's available
the app fills in and provides all the functionality that is needed.
That left the locus of control with me though as a user
to fix the problem on my own, and if I didn't want to,
maybe all I wanted to do was check how many stars that Starbucks had received.
And I didn't want to bother with turning on my cellphone coverage.
So, in summary, what we're talking about is trying to move from high level
aesthetic concepts that govern the design of the Apple interface, and
the vision that Apple wants their application developers to put forward.
We're moving from that down into Xcode, and along the way,
we're going through the human interface guidelines that bring us from those
aesthetics down into the specific code.
A big part of that is not just the user interface elements that we're using,
but the behavior that your app exhibits as you are functioning.
So some of the processes that have best known practices are starting, launching,
restarting, and stopping, they're very important parts of the user experience.
And high quality user interfaces, like the ones that we want you to be
able to design, handle these situations gracefully.
Make sure that your app follows these recommended practices, and if you do, you
will communicate a high quality experience and your user will be more likely to find
value in what you're doing, possibly being willing to pay you, or possibly giving
you the satisfaction of knowing that your app is well designed, loved and used.
Thank you.
[MUSIC]