2 min read

Launch Pages

Available from v25

The Launch Pages feature is a v25 dynamic feature, set up via the appmanager, that replaces the previous static Onboarding and Force Update implementations.

On launch, or when switching to a different environment, the app calls /launch to retrieve content to show and optionally block the app.

Launch pages can be previewed via the AppManager QR code when setting up your app.

Set up

Launch pages is built into the SDK and used by all apps. A developer must set the forceUpdateUrl in the AppConfig.json:

"forceUpdateUrl": "itms-apps://itunes.apple.com/app/id{appstore-id}?mt=8"

Content

Launch pages present content based on the following logic:

  1. If the app is lower than the minimum force update version the app presents the Force Update page.
  2. If maintenance mode is active the app presents the Maintenance Mode page.
  3. If onboarding content is set up and the user has not seen it previously (first launch) the app presents the Onboarding pages.

Force Update

From v25 onwards set a minimum version in AppManager to present the Force Update page on versions lower than that minimum requirement. Force update blocks the user from using the rest of the app.

Older platform versions must still use MightyBot to enable force update by setting the forceUpdate config setting to true. Prior to v25 it was very important to increment your app's API version and create a matching new MightyBot version for every release for force update.

Maintenance Mode

From v25 onwards enable or schedule maintenance mode in AppManager to present the maintenance page. Maintenance mode blocks the user from using the rest of the app.

Onboarding

Prior to v25 Onboarding used to be a compile time feature that required json downloaded from the AppManager to be released with the app. From v25 onwards Onboarding has been completely rewritten to a dynamic solution using the same UI as the other launch pages.

Architecture

Launch pages reuse the same UI for the above defined different content modes.

Templates

Pages can be presented based on a supported template type:

  • TopImage: The image is presented above the title and content.
  • Background: The image is the background behind the title and content.

Behaviors

Pages now have behavior slots using the new ViewSlot mechanism to resolve different page behaviors.

Page BehaviorView implementations are often widgets, managing their own state, to independently perform their own actions. If they conform to DispatchingStoreView they can delegate actions back to the LaunchPages screen allowing them to move to the next page or dismiss (complete or skip) the pages.

The following behaviors are supported as of v25:

  • Link: A generic link button that should be presented modally.
  • Account: The login gate page to encourage users to log in before using the app.
  • Push: The notification permissions opt-in page to reach new users.
  • Location: The location permissions opt-in page (important if the app uses In-Store mode).
  • Get Started: A page to present a button that completes the content.

New behaviors can be injected then mapped using a custom LaunchPagesTemplateViewDataMapper by mapping the behaviorViewSource.

History

  • v25: Initial release replacing compile-time Onboarding.