0

I managed to design a fairly decent launch image/default.png. But I noticed that it just flashes for a second then goes to the UI. Is it possible to code the launch image and make it dynamic? Remaining on screen until the user touches it or a button. Or is this something one would definitely not want to do?

Cœur
  • 37,241
  • 25
  • 195
  • 267

4 Answers4

2

To quote Apple's HIG:

"If you think that following these guidelines will result in a very plain, boring launch image, you’re right. Remember, the launch image is not meant to provide an opportunity for artistic expression; it is solely intended to enhance the user’s perception of your application as quick to launch and immediately ready for use."

iPhoneDollaraire
  • 226
  • 4
  • 10
0

You can artificially extend the launch image duration (to show your logo at least x seconds, to perform an initial network request, etc.) by simply re-displaying your launch screen immediately.

We are in AppDelegate.swift:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
{
    // ...

    // re-initializing LaunchScreen
    let launchScreenView = UIStoryboard(name: "LaunchScreen", bundle: nil).instantiateInitialViewController()!.view!
    launchScreenView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    launchScreenView.frame = window!.rootViewController!.view.bounds
    window?.rootViewController?.view.addSubview(launchScreenView)
    window?.makeKeyAndVisible()
}

Partially taken from: Present view controller modally at app launch.
(note that an improvement could be to use a separate UIWindow instead of addSubview)

Do not add a gesture recognizer on it, because users do not expect to have to interact with it. Instead, you may use a timer to hide it.

DispatchQueue.global().asyncAfter(deadline: .now() + 5.0) {
    // remove your launch screen
    launchScreenView.removeFromSuperview()
}
Cœur
  • 37,241
  • 25
  • 195
  • 267
0

Personally I would do anything to make my application appear more responsive as this is a major factor in how users judge the "performance of your application".

So a corollary of this is ever do anything to delay the user getting to the UI.

David Webb
  • 190,537
  • 57
  • 313
  • 299
0

If your app is ready to use in a flash, then so be it. Put the image in an about box or something. Do NOT delay the user getting to your app for any reason. That's the sort of thing that makes me want to hunt down developers and yell 'what were you THINKING' at them.

Michael Kohne
  • 11,888
  • 3
  • 47
  • 79