Displaying different Launch Images based on IOS Version - ios

I have a situation causing me to have a need to support two different launch images for Portrait orientation on iPads as the views will be different depending on the IOS version.
I'm developing iPad/iPhone app that supports a UISplitViewController as the root window when the device is an iPad. In IOS 5.0, supports the master view controller being displayed in split view while in portrait mode by responding "NO" in the shouldHideViewController UISplitViewControllerDelegate method. In IOS 4.2, this method is not called and thus the Master View Controller is not displayed in Portrait orientation. Instead, it is a popover presented when a Nav button is pressed.
Is there a way to create a single version of the application (from an iTunes customer perspective) that includes the appropriate launch image based on IOS version?
The iPhone App Programming Guide within the Advanced Tips and Tricks section describes how different launch images can be specified based on platform and device, but no IOS version as so: key_root-platform~device
Another post's answer indicated that I may be able to solve a similar problem by creating multiple targets to support multiple versions. Is it possible to create multiple targets and upload them to Apple as a single application and have them distribute the appropriate binaries based on version? Any tips on how would be greatly appreciated.

No, there is no way to do what you are asking for. Your best bet is to come up with some launch image that's not trying to be a faithful reproduction of what your home screen is.

Could you not just show the split view with the popover/sidebar closed in landscape view? That way it will look much the same for iOS4 and iO5.

I think you can accomplish this by creating a custom splash screen. Then you can perform a runtime check and load the appropriate image based on the iOS version. I have seen custom splash screens before (eg animated splash screens).
I think you would overide startupImageWithOrientation:, see this post more for info.
As for your question about having multiple targets be one app, the answer is no.

Related

React Native Launch/Splash Screen best practices?

I hope everyone is safe during these times. I have been working on React-Native for quite some time now and I still seem to be facing issues with the launch and splash screen.
As per my requirements I need to have a launch screen and then a splash screen, the behavior is that if you haven't opened the app yet on your phone it will show you the launch screen and then the splash screen (two separate assets).
I have built two assets with the same dimensions and have used a package called react-native-splash-screen to achieve this behavior but even with the same dimensions for the assets my launch screen and splash screen end up rendering differently.
The package uses .xib files for iOS and I feel like Storyboard would be a better fit for this use case, but even when using storyboard I am having trouble making my asset scale across devices (it could be good for iPhone 11 but not good with iPhone 8 for example), I did use constraints but to be honest even after trying many times I can't seem to get it perfect.
I know launch screens and splash screens are in most apps out there today, but can someone help me or point me in the right direction to implement this with the best practices especially with React-Native?
Thank you very much.
I have been researching the same topic myself. There is a newer package available that uses storyboards instead. It is called react-native-bootsplash. If you are going to stick with using a package, I would reccommend this one instead because it is more recently maintained.
You can follow this article to add splash screen this is correct way to implement splash screen splash-screen-in-react-native i used this way in all of my apps

Is it possible to support iPhoneX for some view controllers in the app?

I have an application which developed before iPhone X release. My question is the following, can I add iPhoneX support for only newly created view controllers? I mean some view controllers will have iPhoneX friendly UI some not in the same app. For my new view controllers I'm using safe area but UI is broken for iPhoneX.
For the app I guess Apple will not allow partial support for iPhoneX.
Just wondering is it possible or not and how if answer is yes.
It's either all or none. If your app uses a Launch Screen storyboard and is built with a Base SDK of iOS 11 or if your app uses launch images and includes an iPhone X launch image then your whole app is presumed to work on an iPhone X. You will need to make sure all screens work correctly.
Think about what a terrible user experience it would be to use an app on an iPhone X where some views use the whole screen and some views only use part of the screen.

Remove storyboard view controller iOS at build time

The fact is that I have a View Controller in my storyboard that is using StackViews. Now, I'm trying to make the application iOS 7 compatible but I don't want to remove that view controller. Is there a way to compile the project without that view controller? I tried to keep the build target of the storyboard to 9 but i would prefer if there is a way to hide that view controller at build time working with iOS 7 on the storyboard
Stack View came with iOS9 and you can't tell the Stack View to disappear depending on the running iOS. It's not possible to build the Storyboard depending on the iOS either. But it seems to be possible to select different storyboards depending on the used iOS. See this link. The cody is ojective-c, but it seems not that hard to transfer the logic.
You can either remove the Stack View or, what I'd suggest, build your App for iOS9, since some survey I've recently read, tells that up to 90% of all Apple Users upgrade to the newest iOS within a week. Your 3rd possibility is to build different storyboards depending on the iOS.
Edit: You may want to check out the OAStackView. Which implements most of the features from UIStackView and supports iOS 7+.

How to implement Split Screen Multitasking on iPad using Third party apps?

I tried to implement the Multitasking feature Apple provided using AIR application, but I seem to miss something.
I did the following as apple recommended:
Compiled the app with iOS9 SDK.
All orientation implemented.
Storyboard added.
Still I do not see the vertical bar that divides the two app's for multitasking.
Let me know if you implemented this successfully in any third party apps?
All 3 listed steps are correct. Please also make sure Requires Full Screen is set to NO. It works perfectly for me.
Please let me know if you (or anyone else) still have trouble with Split View support.
What iPad are you using to test your app? Not all iPads support this behavior. This table shows which iPads support Slide Over, Picture in Picture and Split View:
Documentation from Apple for more information.
By the way how did you manage to use launch screen storyboard with Adobe AIR application?
Split screen wasn't working for me because even though I had a Storyboard, I wasn't using it. Make sure your Launch Screen File is set, and your Launch Images Source is blank.
Check off Portrait, Upside Down, Landscape Left, and Landscape Right under Deployment Info. Also make sure that Requires full screen is not checked off.
Finally you should double check that your Info.plist is correct. UIRequiresFullScreen should be NO. Supported interface orientations and Supported interface orientations (iPad) should have all 4 orientations.

Embed iPhone xib in iPad UIView?

I'm developing 2 iOS apps; a iPhone app and an iPad app. Both have different purposes and functions, but I'd like to (once it's complete) embed the iPhone views into the iPad app as a preview.
(in the iPad app) I have a tab view controller, it loads various controllers and the last one will be a Preview. I'd use half (landscape mode) of the screen for some final settings and the other half to preview what will be produced.
My questions are:
Is this doable?
Is it allowed by Apple?
I've seen other discussions where people want to embed other, App Store apps from other developers. I'm not trying to do this; I only intend to embed the app I have the code for.
I'm just not sure the direction to look in to get this answer.
You should put both of them in the same project, and use a simple iPhone/iPad in AppDelegate.m to start the app with the appropriate View Controller.
That way you can present the iPhone app within iPad app by simply showing a view controller. Apple won't reject since technically it's still only 1 app.
To produce and submit 2 apps from the same project, create another Target. You can set bundle identifier / device type / etc per Target.

Resources