I am updating an old app, and I would like the app to run letterbox, NOT full screen on iPhone X. That is, I want the entire app to stay within the Safe Areas and see black bars on the top and bottom. Unfortunately the app uses a Launch Storyboard, which triggers the app to run full screen. The old solution was to use a launch image instead of a launch storyboard, but as of iOS 13 Apple has deprecated launch images. What can I do? The client definitely wants a logo to appear on launch.
What you are asking to do is now illegal. Your app must use a launch storyboard and occupy the entire screen or it will be rejected at the App Store.
The client definitely wants a logo to appear on launch.
Hmmm, it sounds as if you and/or the client don't understand what a launch screen is. A launch screen is merely the outline of the actual app interface, to provide something to fill the nasty pause between the time the user taps the app icon and the time the app's interface is up and running. If the client wants a logo on launch, that would be a view (possibly belonging to a view controller) shown as part of the running app when it starts up.
I have created a simple Launch Screen for my app using the LaunchScreen.storyboard (in Xcode 7.1.1). It consists of a label containing a title, a UIView (with mode set to 'Aspect Fit') containing an image of the icon (2000 px x 2000 px) and a label at the foot containing a copyright statement (see image below).
Can anyone tell me if this will meet the App Store requirements for a Launch Screen?
Thanks!
There's no problem with your launch screen.
The only thing I'd recommend to change is reduce resolution of your icon - there's no need to icon be so big. It will speed up your app launch time and reduce it's size on device.
Here's link to Launch Screen guidelines, so you can learn more from there.
And here's link to App Store Review Guidelines, they don't mention Launch Screens, but still it's worth reading them before app submission.
Three tips to create a great splash screen for your mobile app:-
1 - Use the right size
From one smartphone to another, the screen resolution can vary a lot.
Let's imagine you have crafted the perfect splash screen for an iPhone 5S. This image should mesure 640 x 1136px. It will look great on the iPhone 5S, 5C and 5, which have the same screen resolution. But what about the iPhone 4 which has a 640 x 960 px screen resolution? Displayed on the iPhone 4S or 4, your splash screen will be distorted.
To make the perfect one, you should create as much splash screens as there are screen resolutions. If your are creating an iPhone app, it's not a big deal since there are few devices.
2 - Keep it simple
The splash screen doesn't last very long. So no need to put a long text on your splash screen. Your users won't have the time to read it. And moreover, that's not the purpose of the splash screen.
Use your brand name, your logo, your motto, or whatever describes you and your app the best. Make a clear composition using those elements, and create one single image, in portrait mode.
If you want to create several sizes for your splash screen, I recommend you focus on the center of the image to put your composition. Leaving the edges of the splash screen free will enable you to crop your image to the different desired sizes.
3 - Tell your users it's loading
The splash screen is a still image. When you see it, it looks like your phone is frozen. Nothing happens. You can't interact with the app. You're stuck. You can only wait for the app to finish loading.
A lot of things can happen in the background when your app is being launched. Your app may need to upload or download data before being ready to be used. Your app launches some processes to boot correctly a new session or restore an old one ... Well, depending on the user's phone processor and/or the bandwidth the phone has access to, the time to boot your app can vary a lot.
To reassure your users, you should mention in your splash screen that your app is loading, and that within a few seconds of patience, your user will be able to use and enjoy your app.
Note:-
Copied from here
How do you implement landscape launch screens for iPhones? I've seen the "plist duplicate" posts and added the arrays they suggested to my plist, and added my launch images to my xcassets file which is set as my launch image so it shows as just a black screen. when removing assets catalogue, theres a bar of black on both the left and right side of the screen the whole time the app is running. Also, if its not done through cassettes, what do you name the images and where do they go? Thanks!
Are you asking about launch images or launch screens?
There's no such thing as a landscape launch image for iPhone. You provide a normal launch image in portrait, and if the app launches in landscape, that launch image is automatically turned on its side.
But in this day and age it would be best to forget about launch images and use a launch screen, a xib file or storyboard. It knows nothing of orientation and doesn't need to know anything: you just configure its appearance using autolayout to match whatever the circumstances turn out to be.
I was going through iOS Human Interface Guidelines.
It was mentioned as
Display a launch image that closely resembles the first screen of the application. This practice decrease the perceived launch time of your application.
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.
What is the difference between a launch image and a splash screen?
Launch image is the image that appears when you launch your app, the images you put in the xcode (iphone, iphone retina, ipad landscape, ipad landscape retina, ipad portrait and ipad portrait retina)
Apple recomends using a screenshot of your app main window, so it appears that your app launch faster (I use a screenshot without buttons)
Splass screen is, for example, the screens the games use, where you can see the company logo and some other info, some of them even use 2 or 3 splass screens. You have to include them programmatically
Wow, old question with no accepted or highly-upvoted answer, bubbling to the front page thanks to an edit. Guess I may as well try my hand at clearing things up?
Launch Image (or Launch Screen)
This is displayed by the OS itself, and appears only while the OS is loading your app (that is, before your process is running and any of your own code gets a chance to execute.
Because your app has no running code to handle display of the launch image, the way you provide one is part of your Xcode project's build-time configuration: Either you provide a LaunchScreen.storyboard, or a set of static launch images — one for each device screen size you support.
Apple's Human Interface Guidelines recommend that your launch image be a rough facsimile of the initial UI of your app. There are a couple of reasons for that:
The launch screen is displayed only briefly before your app takes over and can display its own UI, so having the launch image look like the actual UI makes the user feel more like they're jumping right into your app instead of having to wait for something else.
The launch screen is displayed only briefly, so if you display something that doesn't look like your initial UI, the user may see it flash and go away before they can get a decent look at it.
(Because your launch screen should look like actual UI, and because there are many screen sizes to support, the storyboard approach is preferred — you can use Auto Layout to ensure that your fake UI adapts to different screen sizes just like your real UI would. Xcode then generates the necessary images at build time.)
Splash Screen or About Window
This is what you see in many apps that don't follow Apple's guidance, and it comes in two forms (used separately or together):
Using the Launch Screen system to display content that doesn't look like the app's initial UI — instead, for example, it might be a logo or some other branding element, or might include static text like copyright notices, credits, or version information.
After the app has launched (and thus has control of the screen to display whatever it wants), continuing to display logos or branding or other passive content instead of a usable UI.
The second case is recommended against, but sometimes unavoidable — game engines, in particular, tend to take awhile to start up, so it might be okay to have a "loading" screen. (If so, your launch image should look like your loading screen, so that the user doesn't feel like they're separately waiting for your app to launch and then load.)
The worst offenders are apps that don't really have any extra "loading" work to do, but use a splash screen as their launch image, and then programmatically continue to display that image for an arbitrary amount of time so that the user gets more chance to see it. (And has to wait for it to get out of the way, or manually dismiss it, before actually using the app.)
Launch Image is displayed when the app loads.
Splash screen means, that you display a view with about information as your startscreen. Your User should use your app immediately.
The launch image is designed to make the perceived launch time of you app feel faster by showing something resembling the interface that will be loaded as quickly as possible. Displaying a logo does nothing but draw attention to how quickly your app loads and adds nothing to the user’s experience.
If your bundle have default.png then apps takes as a launch image and it remains on screen for 3 seconds
In iOS splash screen means when you provide any image named Default.png in the bundle and before executing the mainWindow it is just loading that image in the iPhone screen. So, Default.png image is considered as the Splash Screen in iPhone.
While you load the mainWindow in the iPhone application, you can assign any image that can be viewed in the screen in the specific size as given that is called the launch image.
So, launch image that is one which we provide run time when application launches and starting the main-window. And here launch image can be dynamically changed based on program written while Default.png / splash screen will be fixed for the application.
Please let me know if you still have any question?
Launch Image may take a little short time. It shows when app loading starts into iphone volatile memory. it shows for very short.
Splash screen means, that you display an Image until your necessary information loading not complete. Like, U can see any loading image before start any heavy game. When all data loading complete then this screen removed and game statrs.
It may shows for little long. !
Launch Image is displayed when the app loads. It is designed to make your app feel faster by showing something resembling the interface that will be loaded as quickly as possible.
Splash screen means, that you display a view with about information as your start screen. Your User should use your app immediately.
I have set the launch image for my app to look like the initial screen. My app is a multi-screen/multi-view application that mostly takes place in a UINavigationController. But every screen can look very different, so there isn't really much commonality for a general launch image.
I have noticed that if I am in a screen in the app, then go out of the app (pressing the home button), then go back in, it shows the launch image, then it loads up the screen the user was last using. I think this is the expected behavior.
That being said, according to Apple, the launch image is required. So it seems that I have a few options:
Set an all black launch image
Cache an image of the last screen and somehow set that as a dynamic launch image
Specify to only use a launch image on the first screen
Don't specify launch image?
Right now I am leaning towards option 1 and just having an all-black launch image, but I would appreciate if anyone has any tips/suggestions/advice. Thanks.