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.
Provide a launch screen. A launch screen appears the moment your app starts, giving the impression that your app is fast and responsive, while allowing initial content to load. This screen is quickly replaced by the first screen of your app, so it is should closely resemble this screen with the exception of localizable text and interactive elements. To learn more, see Launch Screen.
Launch in the appropriate orientation. If your app supports both portrait and landscape modes, it should launch using the device’s current orientation. If your app only runs in one orientation, it should always launch in that orientation and let people rotate the device if necessary. Unless there’s a compelling reason not to, an app in landscape mode should orient itself correctly, regardless of whether the device was rotated left or right. For additional guidance, see Adaptivity and Layout.
Get to the action quickly. Avoid showing a splash screen, menus, 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 replay 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.
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 settings to meet their needs. To the extent possible, derive setup information from device settings and defaults, or through a synchronization service, such as iCloud. If you must ask for setup information, prompt for it in-app the first time, and let users modify it later in your app’s settings.
Avoid showing in-app licensing agreements and disclaimers. Let the App Store display agreements and disclaimers before your app is downloaded. If you must include these items within your app, integrate them in a balanced way that doesn’t disrupt the user experience.
Restore the previous state when your app restarts. Don't make people retrace steps to reach their previous location in your app. Preserve and restore your app’s state so they can continue where they left off.
Don’t ask people to rate your app too quickly or too often. Asking for a rating too soon or too frequently is annoying and decreases the amount of useful feedback you receive. To encourage well-considered feedback, give people time to form an opinion about your app before asking for a rating. Always provide a way to opt out of rating prompts and never force users to rate your app.
Don’t encourage rebooting. Restarting takes time and makes your app seem unreliable and hard to use. If your app has memory or other issues that make it difficult to run unless the system has just booted, you need to address those issues.