Skip to main content
How-To10 min read·2,000 words

App Onboarding Screen Design: 3-Screen Flow

Create app onboarding screen design that reaches first value in three screens, defers sign-up, and requests mobile permissions only when needed.

#how-to#mobile app design#flow#onboarding screen generator#mobile onboarding ux#ios#android
floow.design Team

floow.design Team

Mobile Design·

App onboarding screen design should use a three-screen first-run flow: show the user one product outcome, let them perform the smallest action that reveals value, then ask for sign-up or a relevant permission only when it unlocks the next action. Put a visible Skip control on every introductory screen, pair it with a progress indicator, and persist completion so returning users open the product rather than the carousel. This structure keeps mobile onboarding UX focused on first value, not a feature tour.

Key takeaways

  • Cap the explanatory first-run sequence at three screens before asking the user to act.
  • Show a visible Skip control on all three introductory screens, not only the final screen.
  • Request Android runtime permissions in context, immediately before the feature needs them.
  • iOS apps must request permission before accessing protected data or device capabilities.
  • WCAG 2.2 AA sets a 24 by 24 CSS-pixel minimum target size criterion, with exceptions.

This guide is for mobile UI/UX designers, founders, and engineers who can already create iOS and Android screen layouts and connect basic navigation states.

Time: 45 minutes · You'll need: floow.design project or equivalent mobile UI design file, One iOS device frame and one Android device frame, A written first-value event, such as “saved first workout” or “created first list”, iOS and Android permission requirements for the product

What's on this page

  1. Define the first-value event
  2. Limit the first-run story to three screens
  3. Build the flow in an onboarding screen generator
  4. Request permissions at the moment of need
  5. Route returning users past onboarding
  6. Reference table

Build app onboarding screen design step by step

1. Define the first-value event

Write one observable event that proves the user received value before they create an account. Use a product action, not a feature claim: “previewed a personalised meal plan,” “heard the first guided meditation,” or “scanned one receipt.” Reject statements such as “understands the app” because analytics cannot measure them.

Design screen 1 around the outcome of that event. Design screen 2 around the minimum input or choice required to produce it. Design screen 3 around the result and the next action. For a plant-care app, the sequence might be: identify a plant, choose its light level, then show a first care schedule. The user should reach that schedule before a full-screen account request when offline or anonymous use is technically possible.

Name the event in analytics before drawing the screens. Track first_value_completed separately from onboarding_completed; a user can dismiss onboarding yet still reach value through another route.

Tip: If first value needs more than one choice, prefill the most common option and make correction available after the result.

2. Limit the first-run story to three screens

Set three screens as the practical ceiling for explanatory content. Screen 1 states the outcome in one sentence. Screen 2 collects only the input needed for the first-value event. Screen 3 shows the result or transitions directly into the product. Do not add a fourth slide for testimonials, pricing, notification education, or a second feature category; those messages belong at the point where they affect a decision.

Place a progress indicator near a consistent edge of all three screens, such as three dots or a labelled “1 of 3.” The indicator must change on each screen and must not be the only way to understand progress. Add a text Skip control from screen 1 onward. Skip must take the user to the product’s default usable state, not to a blank account wall.

On Android, give the Skip control a touch target that meets Material Design’s 48 dp minimum recommendation. On iOS, use a 44 by 44 pt hit area for the control even when the visible text is smaller.

Tip: A progress indicator without Skip can make a three-screen sequence feel mandatory, which is exactly what users resist when they only want to try the app.

3. Build the flow in an onboarding screen generator

Use an onboarding screen generator or your design system to create one reusable shell: status-bar treatment, Skip placement, progress placement, primary action location, and safe-area padding stay fixed across all three screens. Replace only the outcome image, copy, input control, and primary action. This prevents the carousel from behaving like three unrelated promotional pages.

Make the primary action describe the next user action. Use labels such as “Choose a goal,” “See my plan,” or “Start scanning,” not “Next” unless the screen contains no meaningful choice. Keep the action in a reachable bottom area while respecting iOS safe areas and Android system bars. Test the shell at least once with Dynamic Type on iOS and increased font size on Android; text expansion must not cover Skip, progress, or the primary action.

Create two prototype branches. The complete branch ends at the first-value event. The skip branch opens the same usable product destination with optional setup available later from a visible entry point such as Profile or Settings.

Tip: Use a real result card on screen 3 rather than an illustration; a partially populated product screen is stronger evidence of value than another promise.

4. Request permissions at the moment of need

Do not place camera, location, notification, contacts, or photo-library prompts inside the three-screen introduction unless the first-value action immediately requires that capability. Apple’s Human Interface Guidelines says to ask for permission only when people understand why the app needs it. Android’s runtime-permission guidance likewise recommends asking in context, when the user starts the task that needs the permission.

Use a product-owned explanation screen only when it adds decision-specific information. For example, after a user taps “Scan receipt,” explain that camera access is used to capture the receipt image, then invoke the system camera permission request. If they tap “Not now,” return them to a manual-entry path. Never make the explanation screen imitate the system dialog or imply that granting permission is required when an alternative exists.

For notifications, wait until the user has completed an action that produces a useful alert. A medication app can ask after the user creates the first medication reminder, not before the user has seen a schedule.

Tip: A permission denial is a product state: preserve the user’s draft and show the permission’s benefit again only when they retry that exact feature.

5. Route returning users past onboarding

Persist separate state for onboarding_seen, first_value_completed, and account status. On the next launch, a user who completed or skipped the introduction should enter the product’s default destination immediately. Do not replay the three screens after an app update, a sign-out, or a permission denial; each condition needs its own route.

Design at least four launch cases in the prototype: a new install, a user who skipped, a user who reached first value without signing up, and a signed-in returning user. The skipped user might open a browseable home screen with a compact “Finish setup” card. The anonymous user who created data must see that local data and an account prompt only when sync, backup, sharing, or cross-device access becomes relevant.

Test the routing on both platforms after force-quitting the app. The returning-user path is part of the app first run experience because it determines whether onboarding feels like a one-time guide or a repeated barrier.

Tip: Store the completion state locally before network-dependent account creation so a failed connection cannot send a finished user back to screen 1.

Reference table

Three-screen onboarding control specifications

ControlSpecificationImplementation note
Explanatory sequence3 screens maximumThen show first value
Android Skip target48 dp minimumMaterial touch target
iOS Skip hit area44 × 44 ptKeep text visibly smaller if needed

Common mistakes

Putting account creation before the user can see a result.

Allow anonymous exploration or local creation when the product supports it. Ask for an account when sync, recovery, sharing, payment, or another account-specific benefit is next.

Requesting notifications on the welcome screen.

Ask after the user creates an event worth notifying about. Tie the system request to a concrete reminder, delivery update, or saved alert.

Using five feature slides with only a final Done button.

Remove feature slides beyond the three-screen ceiling. Convert the most important feature into the first-value task and expose the rest in context.

Sending every app launch through the same onboarding navigator.

Branch launch routing from persisted onboarding, first-value, and account states. A returning user should not have to tap Skip again.

Frequently asked questions

How many screens should a mobile app onboarding flow have?

A mobile app onboarding flow should use no more than three explanatory screens before the user performs a first-value action. Three screens are enough to state the outcome, gather the minimum input, and reveal a result. Add later education inside the product when the user reaches the feature that needs it.

Should an app require sign-up before onboarding?

An app should defer mandatory sign-up until after first value when anonymous use can safely support the core task. Require an account earlier only when identity is essential to the first action, such as regulated health records, paid access, or a service that cannot operate without a user identity. Explain the immediate benefit at the account wall.

When should mobile onboarding UX ask for permissions?

Mobile onboarding UX should request a permission immediately before the user triggers the feature that needs it. Apple and Android both direct apps to ask in context rather than at launch. Provide an alternative path after denial when the product can still complete the task without that capability.

What should an onboarding screen generator include?

An onboarding screen generator should produce a consistent Skip control, progress indicator, primary action area, and platform-safe layout across all screens. It should also let the team prototype complete, skip, denied-permission, and returning-user branches. A static three-slide carousel is insufficient because launch routing changes after the first session.

Where this leaves you

A useful first-run flow earns its place by moving a person into the product, not by describing every capability before they can touch it. Keep the explanatory sequence to three screens, make Skip visible, and define the first-value event before choosing illustrations or writing headline copy. Treat sign-up and permissions as contextual requests with a clear user benefit. Then prototype the four launch states: new, skipped, anonymous after value, and signed-in returning. The next action is to write your product’s single first_value_completed event and map the three screens that lead to it.

Design the screens first

Describe the screen you need in plain English and floow.design generates production-ready iOS and Android layouts you can iterate on by chat, then export to Figma or code. Design your mobile app screens in floow.design first, then build.

Start designing free →

Related

Sources

Design your mobile app with AI

Generate pixel-perfect iOS & Android screens in seconds. Export to Figma and ship faster.