iOS 9 Split screen support for iPhone/iPod app - ios

Is it possible to support iOS 9's multitasking (e.g. split screen) for iPhone/iPod apps as opposed to a Univeral app?
My existing app would need a full UI redesign to look good on an iPad screen, but it would look fine right away on a split screen, which is only half as big.
In my own tests I've only been able to get it to work with a Universal app, but I haven't been able to find any Apple documentation on this yet, so I'm hoping someone here might have some info.

Is it possible to support iOS 9's multitasking (e.g. split screen) for iPhone/iPod apps as opposed to a Universal app?
No.
I haven't been able to find any Apple documentation on this yet
They're not explicit about it, because it seems obvious on its face, as I think you understand. You can infer it from a few places though. For example this documentation says:
In your project’s Info.plist file, in the “Supported interface orientations (iPad)” array, declare support for all four device orientations, as shown here:
It should be obvious that the “Supported interface orientations (iPad)” array won't be read on an iPhone-only app.

This is about device/iOS capabilities (so it's not a dev question per se).
Multitasking is supported on all devices. However, the iPad also adds Slide Over, Split View and Picture in Picture.
On your iPad, you can use multitasking to switch between apps using gestures, use two apps at once, answer emails while watching a video, and more.
Source

Related

Add support for iPad Pro 10.5 screen

I'm developing an iPad app, but when I run it on my iPad Pro 10.5 the status bar is bold, a sign that the app is not optimized for that resolution. How can I add support for the new iPad? I see that other App Store apps (such as Trello for example) work good in full resolution.
I know that there's another question similar to this, but the answers don't really solve the problem. All the 3rd party apps on my iPad are perfect on the screen, but not the one I'm developing. This means that all the other developers have added the launch screen images (not a common practice nowadays) or they found a clean way to do it.

Should I enable or disable upside down in my iOS app?

I made an iOS app with some web views an a contact page. You can navigate by using the toolbar on the bottom. I enabled landscape and, of cause portrait mode.
Should I enable upside down in my iOS app, too? Ore should i rather disable it? What is more user-friendly? What do you prefer?
If your app contains web views and contact pages then you should probably not enable upside down as it may not be user-friendly and cause inconvenience to the user while receiving calls, etc.
However, music and voice memo seems to be some situations where Apple saw fit to enable upside down. The reason is:
1.Voice Memos: Since the main microphone is on the bottom of the device, this app decides to allow this seemingly taboo orientation and kindly rotates the interface for you.
2.Music: It seems to be another case where Apple saw fit to allow an upside down orientation, but only if your device is plugged into, and playing music through, something like a car stereo. Maybe Apple accommodated for that kind of situation where the device often needs to be placed in a strange orientation in order to fit into a car setup.
Check this for reference.
There are also some apps which support upside-down texting. Go through the link for details.
So, it entirely depends on the functionality of your app to decide whether upside-down should be enabled or not. You can provide the use of your app to get more precise answers.
The upside down orientation on iOS was introduced mainly for iPad apps, where it's more common open an app with the device rotated of 180°.
So if your app support iPad you should enable this orientation. As confirmation in Apple Documentation you can read:
Important: It is strongly recommended that your iPad applications
support all orientations. This includes portrait, portrait
upside-down, landscape left and landscape right. iPad apps that
require an orientation must support both variants of that orientation.

Coverting iphone app to universal

I know that there are several answers for this question, but I was not clear about the result. Here are a few questions:
1) If I created a project as an iPhone project, selecting device as iPhone in deployment info, and designed the app using universal storyboard (i.e any width and any height (600x600) ). Once the design is completed and it is run on an iPad, the UI does not look good. If that is the case then, what's the point in selecting the device as an iPhone? Am I right that when selecting the device as iPhone or iPad, Xcode will allow the app to only run on those devices?
2) Now converting iPhone app to universal app: since image resolution varies from iPhone to universal app, do we have to replace all old images with new images supporting the universal app?
3) If I have an iPhone app, the Apple team will test it, both on an iPhone as well as on an iPad. If they found the UI doesnt match the iPad, will they reject the app?
I would imagine the UI looks just like it does on the iPhone, just enlarged to fit on the iPad. Basically this is because iPhone only apps can be run on iPads, but not vice versa. If you change the app to a Universal app, it will try to run natively on the iPad, and may look better if you have appropriately used auto-layout and size classes.
(Optional other cause) The other option is you're running into an iOS 8 issue where if you use an storyborad or nib for the launch file, it will mistakenly make an iPhone only app work as a Universal one. The use of Launch Screen File in iOS 8.0, 8.0.1 and 8.0.2 will make you universal.
This is a know bug and fixed in iOS 8.1, for you only option is to use assets catalog with a launch images.
Or you can add the device modifier in the Launch file name, like <launchNib>~iphone.nib
As far as images go, you will want to make sure you have images for the different resolutions (#1x, #2x, #3x). If you haven't already, I recommend reading up on asset catalogs (http://schlu.org/2013/10/01/Xcode-Asset-Catalogs.html). Images are not inherently different between iPhone and iPad (except for launch images), but it's the pixel density that really matters (older devices are 1x, most retina devices are #2x, and the 6 Plus is #3x).
If it is truly just an iPhone app, Apple will not reject the app because it looks pixelated and ugly on an iPad. The ability to run iPhone only apps on iPads stems from the initial release of the iPad when people hadn't created iPad or Universal apps yet. Apple basically provides it if someone REALLY wants an app that hasn't been created to specifically support the iPad yet.
That said, I would just go ahead and release it as a universal app. If you don't have revenue reasons for creating separate apps, I wouldn't recommend the extra hassle of having two apps. If course, if your app doesn't make sense on the iPad, simply make it iPhone only.
These are the common practices according to your questions
User interface doesn't depend on deployment devices. User interface depends on your implemented UI logic. As you said, default storyboard size is 600x600 (this could be easily changed), but this doesn't mean, that all devices should be this resolution. When the resolution is different, images and UI elements are misplaced. There are several ways to implement UI logic and make UI flexible, but I guess your question is not about that. So, short answer - devices selections are more about deployment than UI.
It might be some different images for different devices, but images such as buttons or text fields or etc should be flexible.
No, Apple doesn't care about your application appearance and design.
I hope I have answered to your questions.

Xcode 7 Beta warnings: Interface Orientations and Launch Storyboard

I opened my project in Xcode 7 beta and I am getting the following warnings which I do not get in Xcode 6:
All interface orientations must be supported unless the app requires
full screen.
A launch storyboard or xib must be provided unless the app requires
full screen.
The app uses Portrait orientation for devices only, and I have it set that way. I also have storyboards for both iphone and ipad interfaces. I can't determine why I am getting these warnings. Is this an Xcode 7 beta bug?
This warning is new for iOS 9 since it supports resizable apps with multi-window support. Previously, apps would be auto-scaled to new devices which had different hardware display resolutions to those in the launch image (which is basically how iOS detects the supported interface resolutions). Now, apps which support multi-window must define the resolutions they support by including a launch image or storyboard for all device screen types.
Unless you are re-writing your app to support multi-window, you will be requiring 'Full screen'. This is a hint to iOS that you do not support multi-window, and basically makes iOS 9 work like previous versions in this regard.
So, if you are submitting an app update for iOS 9, and you do not support multi-window, all you have to do is to go to your Project Target settings, select General, and under 'Deployment Info' look for the tick box called 'Requires Full Screen'. Tick this and the warnings will disappear.
It is certainly not a bug. If this warning is present, then your app may have trouble during submission. Not sure about that, because I haven't submitted an app with iOS 9 GM Seed yet, but I'm certainly going to tick the box :-)
Just go to your target,click "General" tab,find the "Deployment Info" section,check the "Requires full screen". :)
It's so easy,right?
BTW, this is not the best solution. There will be more and more better solutions. But when I answer this question, I only thought how to kill the warnings. I didn't explain why do this but how to solve this. Xcode beta version might change it's features, so I just provide a "workaround" at that early time. So if you think my solution is a workaround, please vote up for other better answers. But this is not the reason for voting down. Thanks :)
This is because Apple has added multi task ability in iOS 9. All you need to tell Xcode is that your app require full screen.
Add the UIRequiresFullScreen key to your Xcode project’s Info.plist file and apply the Boolean value YES.
To read more about it in general.
https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad/index.html
I just saw this error and after reading the comments, I surely want to support iPad and multi-window use. This is as simple as checking Device Orientation options "Landscape Left" and "Landscape Right" and making sure that my UI supports these.
Best way I found to test for good multi-window support is to use the resizable simulators, or better in my opinion, use the iPad Pro in XCode 7.1 and actually activate the multi-window feature by dragging from the right. After taking these steps, I my app supports these features and I'm able to quickly see what I need to update or optimize to fully support them.
By default the Device Orientation only enables Portrait, Landscape Left, and Landscape Right. You need to enable the Upside Down as well.
“Clean Build Folder” and build again
I got the All interface orientations must be supported unless the app requires full screen. message today in Xcode 7.3.1, seemingly for no reason, no related change that I made.
I do have a LaunchScreen.storyboard
I have not checked Requires full screen.
I tried the usual maneuver when Xcode leaves me puzzled about some-new-error-for-no-good-reason:
Hold down Option key while clicking the Product menu.
Choose Clean Build Folder (not Clean).
Choose Product > Build.
No more problem. After a few more build-and-run sessions, the error message has yet to re-appear.
Have you provided a "Launch Storyboard" for your app? Or have you just provided static images for the various sizes.
Check here:
https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html
Set UIRequiresFullScreen to YES in Info.plist. And tick Requires full screen.

How to format app properly on an ipad from an iphone app in xcode?

I've written an app in Xcode and I set it for iPhone, but now I want to make the app available for iPad. I don't want to go through the trouble of making it universal, is there a way I can run this iPhone app on my iPad correctly formatted?
You can just set the target Device to iPad and run it. See below. Your UI may or may not look good depending on if you properly used either AutoLayout or Springs and Struts.
The iPad is a very different canvas for a UI than the iPhone and there is no definition of what "correctly formatted" really means when going from one to the other. It's a subjective matter and a computer is not going to decide if it looks good for you. As such, you may not get what you are looking for.

Resources