This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Displaying splash screen for longer than default seconds
I am developing a simple game from an open source xcode project.
I am a complete beginner in xcode, and I don't know anything.
The splash screen lasts while the game is loading, but the game is so simple that the splash sscreen stays on the screen about half a second.
I don't want that, I would like it to stay for about 5 seconds.
Thanks.
You should no delay the splash screen, since it's not splash screen. it's place holder for the app while is it loading.
If you read the Apple HIG you will read that delaying it is not allowed.
If you think that following these guidelines will result in a 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 app as quick to
launch and immediately ready for use.
Duplicate of: Displaying splash screen for longer than default seconds
You don't need the splashscreen to last longer. You need to make a UIViewController which shows the splashscreen a little longer. You can also show the user what your app is doing (the loading stuff) then, which fits better in the Apple way of thinking.
Render same loading screen from code at launch till ur loading completes.
Related
My application is an Air-based iPhone app. It opens with the last page I visited before clicking the Home button, each time I relaunch the app, while I need to open with the splash screen onward. How can I resolve this issue?
Thank you for any help.
When you press the Home button, you don't terminate a running app. I'm sure that many of us developers have stuck with this mental model of how iOS used to work without multitasking.
So, the splash screen, or rather, the default image (Default.png) should really appear once (when your application launches). Some times, the default image appears when coming out from the background state, but this happens only if your app takes too long to show its UI. In fact, on fast iPhones, the default image disappears almost instantly even on launch (for well-written apps, that is).
I should also note that Apple actively discourages the use of the default image for splash screens. These should only be used for creating an illusion of transition, from a "launching state" (which the default image is supposed to portray), to the running state.
However, if you really have to show a splash screen every time, you should implement such a mechanism in code. applicationDidBecomeActive: is a good place to start, if you are writing code in Objective-C.
I don't know the event model in Air, so I can't really give you any hints for that.
The above answer, though old, does not answer the question. Sure, Apple gives guidelines regarding splash screen and all, but the poster asks how to prevent the app from resuming from it's previous position. If you want the app to terminate when put in the background you need to look into the UIApplicationExitsOnSuspend option. There's also an Adobe blog post explaining a bit more about different background behaviors.
This question is similar to this one. My iPhone app allows the user to select the background image to use for the main screen. Therefore, depending on the background image selected by the user, the Launch Image screenshot (of the main screen) will likely display the wrong background image. When the main screen is finally loaded and the Launch Image is removed, it will be quite ugly for the background image to change suddenly to what the user has selected.
Does anyone have any suggestions on how to deal with this? Should I use some kind of splash screen (I thought I read in Apple's HIG that this was not allowed)? Or maybe I should somehow "transition" the user's selected background image into the view after the Launch Image is dismissed and the main screen is visible. Any thoughts?
If you really want to show a 'Splash' Image what you could do is forget about dynamically changing Default.png and use a simulated splash screen effect (simply a UIView or UIImageView covering the entire screen) which disappears after a number of seconds. What you need to ensure is you do the minimal amount of work to show the simulated splash screen and get it on the screen as fast as possible and then do any other computations later on whilst your image is shown.
There is no way you could change the actual Default.png without having the risk of your app being rejected by Apple.
Depending on how long your application takes to launch, you can use a black image as default.png. A "splash screen" isn't recommended but if there is no generic image possible and your app takes a significant amount of time to launch, it would be a better approach for the user's perspective as they would at least know that the application is launching.
Also remember that default.png is only shown when your app first launches, not when it resumes from multitasking (unless it has since been killed off).
See also this question Changing UIView when applicationWillEnterForeground fires which will be the next issue you face if your background image is set in preferences rather than within the app!
I have a splash image that I want to display when the app is launching. I use it as a launch image - I want it to be displayed until the program is launched (rename the picture to Default.png).
In apple's HIG they say one should "avoid" using a splash screen as a launch image.
I know it's not recommended and that users often don't like them, but will it make Apple reject my application? If so, how can I display a splash screen so it'll be displayed as soon as the app goes on, but not violate those rules? because I have seen applications with splash screens as launch images.
Thx in advance!
It's not that Apple will reject your App just coz you have a splash screen. But it's advisable to not have a splash screen as the user has to wait. Better not make the user wait...
Flipboard which was the Apple App of the year in 2010 has an image splash screen. As the user enjoys the images, data is downloaded in the background so that as soon as the user flips the page, the next screen is all ready & up to date. But they have made it in such a tasty fashion that the user hardly feels as if he's been made to wait. So it all depends on your design...
If you plan to simply use the Default.png mechanics to display your splash image, there is no problem.
The issue arises when you would like to prolong the display of such image only for the sake of it. This is what the HIG are against: that the user is made to wait without any real benefit. It is also to be noticed that with the advent of multitasking (iOS 4), the effect of showing a splash screen is reduced, since most of the times the app is not closed, so you see no splash screen at all when you go back to it.
On the other hand, it is understood that if you need to do some setup task in your app that take time and you have to do that at startup, then the user will have to wait. It is important, though, that he/she be notified of the wait and why it is for. This could mean, e.g., displaying a label on top of your image saying: "Loading..." or "Preparing data..." or whatever your user might better understand as part of the functionality of the program.
As to how to do it, there is no other way, AFAIK, than starting your app with a view that is exactly the same as Default.png (a simple UIImageView would do). That means, that in you appDidFinishLaunching delegate method, you create the view and attach it to the window; then, when you have done with your app preparation, you switch to your real view.
This would give you also the chance to add the label or whatever other kind of messaging to the user.
I'm going to submit a Lifestyle app to the App Store. I'm confused whether to add a Splash Screen to the App or not ?
Please advise me whether it's a good or bad idea as far as usability and App Store's submission guidelines are concerned.
Its bad - you shouldn't do that!
Please read the Start Instantly Section of the Apple HI Guidelines
Avoid displaying an About window or a
splash screen. In general, try to
avoid providing any type of startup
experience that prevents people from
using your application immediately.
http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UEBestPractices/UEBestPractices.html
You should definitely at least add a Default.png to your app if I understand your question correctly.
Launching an app and looking at a black screen for a split second is not the best user experience. Some nice-looking image with your company name or app logo will do. Or you could follow Apple's guidelines and present an image of the starting user interface so that your app will seem to load instantly.
Here's a relevant doc.
The developers guides mostly suggest a splash that looks like the starting screen of your app, to give people the impression the app has started. This has the bonus of allowing the user to start figuring out what they want to do while the program finishes loading.
From a users standpoint, I dislike most splash screens, I just want to get to the program, not look once again at what constitutes an advertisement for the program.
if your app loads blazingly fast,then you can provide this method in
- (void)applicationDidFinishLaunching:(UIApplication *)application
[NSThread sleepForTimeInterval:3];
Before your view controller is loaded.
It will halt the main thread for 3 seconds,which will give time to your splash screen.Thats the way i do and there is no problem with this method,as you are working on the main thread.
Yes, you can add a splash screen to your app.
Depending on what you do with your splash screen as far as extravagant animations go, I would go subtle, with minimal animations.
You can add a Default.png (see iOS documentation!) to your application bundle.
This image is being shown full screen while your application is loading.
Other than that, I wouldn't add a splash screen to your app.
ok. I know how to display the splash screen on iPhone. Seems quite simple enough (i.e. setting the Default.png and calling "sleep" command).
But, is the application actually doing anything during this time? My app needs to go and fetch some data from Web before showing the app's first screen, but when I do the splash screen, it doesn't seem like it's doing this while showing the splash image.
Can I actaully make the app do something while showing the splash screen?
The best way would be to structure you application differently slightly differently.
Make your application display the Default.png when it starts it (ie. put a UIImageView onto screen), then start fetching your data.
Then either when you have fetched the data (or if you really must, once an NSTimer has expired, but it's a better user experience if you avoid a fixed time interval) change the view to be your real one.
Where you have got the idea that you need to call "sleep" while showing Default.png and there is nothing going on while this image is shown? Default.png is shown when OS is loading your app. You can not do anything during this time. In fact you have not got any control yet. It is handled by the OS. The idea behind this is to give user a feeling that app has loaded quickly, but actually your app is not completely loaded while Default.png is showing instead of a black screen by the OS.
You can manually add a view looking like your splashscreen after starting your app and handle the work in background. I would also add a hint to the user which indicates "loading data", because an app should start within 3 seconds.
If you read the Human Interface Guidlines, they're pretty clear that Default.png isn't intended to be a branding splash screen. It's meant to bring up a static "shell" of the initial page of UI so that the user experiences quick loading. So it's not at all designed or intended for what a lot of apps are using it for (including some of mine).
If you have your first screen that comes up be that image again, maybe with an activity spinner or status text on it, you can do whatever you need to do in the background of it, and then replace it with the first "real" screen of your app when you're done.
Generally all of the awakeFromNib calls in view controllers are done while the app is loading (ie has the splash screen up). When I put breakpoints in my apps at awakeFromNib calls, the breakpoints are hit when the splashscreen is up and the app is loading. So everything you do in
those calls will be processed while the loading screen is up.