What is the target resolution for iPhone 6 Plus apps? - ios

When developing an app specifically for the iPhone 6 Plus, what resolution should the app be designed for? Should it be 1242×2208 or 1080x1920? Will an app designed for 1080x1920 fill the entire iPhone 6 Plus screen? Are there guidelines from Apple on this issue? I haven't found any. Thanks.

Apple's guideline for all devices is to stop hard coding screen sizes and use Autolayout. If yo are targeting the iPhone 6/6+ you can assume iOS8 and Xcode 6 which makes Autolayout much easier.
It you really want to work to a specific screen resolution, you should use 1242×2208 which is downscaled to 1080x1920 in hardware.

Related

generate ios 10 universal app splash screen sizes and filenames, iPhone SE

I am making an iOS 10 ONLY Universal App. Being a developer with poor image-handling skills, it has become too troublesome to generate the splash screen images for me. I guess that's some work for the "designers".
Nevertheless, i have to do it and I need help because what i have made doesn't work fine with the iPhone SE.
I don't care about older devices and operating system versions, but i want to cover every device that can run iOS 10. so forget iOS 6,7,8,9.
Btw, i am using Xcode 8, so forget all about Xcode 5,6,7.
There's too much of confusing content for new developers often wasting their time while they read about older versions and which might not be quite applicable anymore.
I have read the following posts/guides already.
What are the sizes used for the iOS application splash screen?
Image resolution for new iPhone 6 and 6+, #3x support added?
Image sizes required to support all iPhone devices
How to handle image scale on all the available iPhone resolutions?
Use vector artwork for iOS launch image in asset catalog?
The first SO post is so outdated, people are talking about iOS 6 & 7,
and iPhones 6, 6+, 5S, 5, 5C, 4S, 4 and the various iPads.
But no one mentioned/talks about iPhone SE.
The second SO post is also quite outdated, people are talking about iOS 7 & 8, and iPhone 6 and 6+ are mentioned.
Even though i figure out the size, there is a filenaming/convention issue.
I am looking for a table that clearly states the filename, image size(resolution) and the devices it will be applied to.
As usual, Apple's documentation provides good detail about image resolution but nothing about filename.
link -> https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen/
I wonder if the filenames matter? I can easily modify the Contents.json file i think.
Is there some tool where i can provide my logo in vector (SVG) format
and it gives me all the splash screens with my logo in the center (with the correct filenames!)
I believe the iPhone 5/5C/6/6S/6+/7/7+ are the only 7 iPhones that support iOS 10. (i checked Wikipedia) Did i miss something?
In a universal app, is making images for iPads mandatory?
Why doesn't everyone use and everyone allow using vector images directly? I hope i can use SVG, and it is easy enough, it looks like currently that is infeasible. correct if i am wrong.

Target iPhone 6 plus to iPad app

I've just got my iPhone 6 plus and noticed that a lot of the Apple apps are using the iPad version when rotating the phone to landscape. It makes sense since the screen is so large.
So my question is. How do I detect this in Xcode to target iPhone 6 plus phones to run the iPad version of my app?
There is nothing to detect. An app should be written so it doesn't really care what device it is on. Everything should be based on size classes and auto layout.
In the examples you mention (in the comments), most likely what you are seeing are UISplitViewControllers which looks similar on the iPhone 6+ as it does on the iPad.
Just write a proper universal app with one set of screens that properly adapt themselves based on the current size class.

Can I use UIRequiredDeviceCapabilities to restrict an app to iPads and the iPhone 6+?

I have an app whose UI needs quite a lot of screen space. At the moment, it's iPad only, but I think it would be OK on the iPhone 6+. I'd like to make it a universal app but restrict it to iPads and the iPhone 6+. Is there some combination of device capabilities I can set to achieve this?
You can't.
Because iOS 8 supports devices with 3.5" & 4" screens, you can't use the only-support-iOS-x technique.
Also, there isn't a setting in Xcode or a key for requiredDeviceCapabilities which allows you to make the app for iPhone 6+ only.
As you can see in this link there is no capability that isolates the iPhone 6 and 6+.
In this sense you can drop the idea of doing so because you would never pass AppStrore approval for what you are looking for. [added]Unable to use device capabilities[/added] The AppStore leaves you with only TWO device-specific options iPhone (for ALL iPhone models) and iPad (for ALL iPad models) or both.
For that to work without a specific capability the AppStore would need to change (!)
Sorry for bearing bad news :)
Well Signo is righgt.
iOS 8 supports devices with 3.5" & 4" screens, you can't use the only-support-iOS-x technique.
but yes you can do one more thing like for iphone6+, ipad you can continue with lots of screen space.and for other small screen devices you can design screen with required size by help of size class selection.
Hope it helps!!

Does my iPhone app have to work on iPad too?

I was reading the apple guidelines are there is a point which says
iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Does this mean if my app doesn't work perfectly fine on an iPad, it gets rejected? I'm posting this here as I found many contradicting information regarding this.
It means it has to run, not that it has to be optimized for iPad.
There is a big difference in that. You don't have to create iPad storyboard in order to make app run on an iPad - Xcode lets iPad use the iPhone storyboard and open it as if it was an iPhone. The view is then shrunk into a smaller rectangle.
You are aiming for something like this:
Apple has build Xcode in way that when you build and iphone app, it will also be compatible for iPads with 1x and 2x resolution. So you need not worry about creating a separate storyboard for iPad. Hope you find this helpful. Happy coding !

I don't want my iOS app to run on iPhone with 3.5 screens, is it possible to restrict my app only to 4 inch displays?

I don't want my iOS app to run on iPhone with 3.5 screens, is it possible to restrict my app only to 4 inch displays or larger?
Also, is it possible not allow the app to run on a certain device? I do not want my app to run on iPhone 4 and 4S.
Rather than selecting for a specific device you should focus on what capabilities you need.
For example Bluetooth 4.0 Low Energy communications supported only in iPhone 4S+ devices . You can add the bluetooth-le key to your UIRequiredDeviceCapabilities to prevent installation on every device but the iPhone 4S+ devices.
I don't think this is a good idea. Apple wants you to develop for as many devices as possible, and if you decide not to support a certain device for no reason (e.g. "no M7 coprocessor" for all devices except the 5S), Apple will reject your app.
You cannot choose an app to only be released for 4" devices, and you have no influence on what display the iPad simulates when it runs an iPhone only app. What you want is simply impossible. This answer was found here: Limit app to running only on 4 inch devices IOS and answer credit goes to #Scott Berrevoets
NO.
You can't make an iPhone app restricted to a certain screen size. Not only is it not technically possible, it's against Apple's App Store Review Guidelines, in ways.
2.10: iPhone apps must run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Although it's an old guideline mentioning the iPhone 3GS, the gist is the same even now: the app MUST be able to run on any screen size. There are even resizable iPhone and iPad Simulators within Xcode that you may use to take guesses on the next iPhone's screen size.
If they made guidelines so that apps can be used on the iPhone 3GS and the 4 and the 4s, said apps should also be able to run on newer phones and whatever's currently supported with the OS.
You said you noticed performance issues on older devices in a comment. This is where you need to work. How would you go about fixing said performance issues on older devices? Do what Apple did with iOS 7's release:
Reduce graphical effects and unnessicary processor-heavy effects on older devices.
If you look between devices, iPhone 4 has none of the translucency and background blurring that was advertised with iOS 7, namely with Control Center, Notification Center, Alerts, Keyboards, and Navigation Bars. This is how Apple tried to compensate with the lag of the iPhone 4 trying to run iOS 7. Same goes with the iPad 2. The iPod touch 4th generation didn't have enough RAM to run iOS 7, so it's stuck on iOS 6.1.5.
You need to do some work here too. If you have unnessicary graphical and processor-intense effects in your app that causes lag and performance issues, disable them on devices that can't run them at a smooth frame rate.

Resources