Onboarding

Launch time is your first opportunity to onboard new users and reconnect with returning ones. Design a launch experience that’s fast, fun, and educational.

Avoid asking for setup information up front. People expect apps to just work. Design your app for the majority and let the few that want a different configuration adjust preferences to meet their needs. To the greatest extent possible, derive setup information from the system and defaults, or through a synchronization service like iCloud. If you must ask for setup information, wait until it’s actually needed, prompt for it once, and let users make future adjustments in your app’s preferences.

Establish a default configuration that’s applicable to most people. If you gauge the needs of your audience well, adjustments to the default settings will rarely be needed.

Get to the action quickly. Avoid showing a splash screen and instructions that make it take longer to reach content and start using your app. Instead, let people dive right in. If your app needs tutorials or intro sequences, provide a way to skip them and don't show them to returning users.

Anticipate the need for help. Proactively look for times when people might be stuck. A game, for example, could casually show useful tips when paused or when a character isn’t advancing. Let users revisit tutorials in case they miss something the first time.

Stick to the essentials in tutorials. It’s fine to provide guidance for beginners, but education isn’t a substitute for great app design. First and foremost, make your app intuitive. If too much guidance is needed, revisit the design of your app.

Make learning fun and discoverable. Learning by doing is a lot more fun and effective than reading a list of instructions. Use animation and interactivity to teach gradually and in context. Avoid displaying screenshots that appear interactive.

Provide integrated help. Add help tags to app-specific controls and consider offering task-oriented documentation through Help Viewer. For guidance, see Help.

Automatically save the user’s work. People expect their content to be saved continuously and without intervention. If your app is document-based, enable automatic saves. See Auto Save.

Always be prepared to stop and restart. Most people don’t distinguish between closing an app’s main window and quitting the app. If your app has a single window, quit automatically when the user closes the window.