Control the time of showing the launch image


When I tested the launch image in the Quiz project, it went off in a second. I’m curious how it would look like of the launch image.
I learnt from the book Objective-C BNR Guide the Sleep() function can pause the program with a specified time. I used it in the Quiz program by adding it in the main.m as follows

int main(int argc, char *argv[])
@autoreleasepool {
sleep(10); // to pause the program for 10 seconds in order to see the outlook of the launch image
return UIApplicationMain(argc, argv, nil, NSStringFromClass([QuizAppDelegate class]));

As I’m a novice at iOS development, I wonder if launch image showing time is controlled in an actual app, and if yes, how it is controlled.
From my experience as a iOS device user, I’ve seen many apps showing their company’s logo and names upon launching.


You don’t want to sleep the app (the user can’t interact with it) and you don’t want to show your launch screen longer than necessary. There is no way to control it, other than to immediately insert a UIImageView with the exact same image on the window when the application launches.

Splash screens seem cool, I suppose, but users don’t really like them because it is time spent not actually using the application.


I agree that while a splash screen might seem like a cool idea, it merely makes it look to the user that the app is taking a while to load. That suggests a certain slowness and delays the user from being able to do what they want to with the app.

Making a user more aware of your company identity might be better served by producing great apps that allow them to get in and get out as soon as they can. You don’t want to be that one app that a user dumps from their device because they find another that does the same thing but “loads quicker”.


Apple’s HIG recommends placing an image of your app’s first screen, perhaps with incomplete UI while the app is launching. One reason is that in the future, as hardware becomes faster and faster, the launch screen might even perhaps appear for a fraction of the time and perhaps not appear at all. It also gives the impression that the app has already launched very fast. And it would probably be a good idea for the user for you to prep your data, fetch updates, etc using some sort of lazy loading or objects on another thread, using queues and such. Would you agree?