Worry about the 4s? - ios

Totally newbie here...I have been working on auto layout using stacks and constraints with X code 8 and I have a very good understanding of how it works. I can get my layouts to render across all sizes in the sim looking as expected.
My one issue is that I can easily make layouts that looks good for 5 through 7 plus...but when I try to make the 4S work, it just kinda screws everything up in regard to the spacing of the layout for the other models....it still works and looks as expected, but because the 4s is so small, it ends up leaving a lot of space in the other sizes.
Should I just not worry about the 4s and make sure that my other sizes render the way I want? When I submit my app will this cause it to be rejected?

From the following link you can see that there is only about 2% of people are only using iPhone 4s. So if you targetting above this device its ok.
https://david-smith.org/iosversionstats/
Apple's latest iOS will not support iPhone 4S, which has been supported from iOS 5 all the way to iOS 9.Apple announced that the iPhone 4S will not support iOS 10 due to hardware limitations.
As mentioned in comments you can go for a custom layout for that scree size if needed.

Related

Can iPhone SE design work for iPhone X

I have designed my app without auto layout and for the size 320*568 (iPhone SE). The design i did for iPhone SE itself worked up to iPhone 7plus bcoz of adding corresponding launch image. Even it now works for iPhone 8 plus. But for iPhone X, it doesn't seem to be appearing full screen(Pl find the below image). Is there a quick fix or do i have to use autolayout to get it right?
Autolayout is the best for the iOS design to make it responsive according to the different device, so it is suggested to use autolayout. There are some reasons for why we should use the autolayout ?
It assures that it looks fine on all the devices.
It requires less effort to make design responsive if you are looking for different sizes or orientation.
It is easy to update the design when there is new device introduced.
And for particularly your question. If you want great design on all the device including iPhone X you should use 'Safe Area' + 'Autolayout'.

Storyboard Sizes for iOS 11?

I currently use Storyboard for Screensizes.
The following storyboards I use are:
iPhone55.storyboard
iPhone47.storyboard
iPhone4.storyboard
iPhone35.storyboard
Each Storyboard corresponds to the screen size in the name.
Now with the iPhone X out, I need to create a new storyboard for this screen size.
However, my question is, what screensizes must I account for, with iOS 11?
And just out of curiosity, what screensizes must I account for, with iOS 10?
I'm finding conflicting information, so I thought I'd reach out here for clarification.
I'm thinking of making this update for iOS 11 users only, meaning I may be able to drop some older storyboards.
Thanks.
Separate storyboards for different screen sizes is a quick route to maintenance nightmares compared to Auto Layout, but whatever floats your boat...
That said, your set of supported screen sizes is correct for iOS 9 (which supports devices as far back as iPhone 4s, a 3.5" screen). iOS 10 drops support for 3.5" devices, but still supports 4" devices (iPhone 5s and iPhone SE, the latter of which remains for sale and will thus likely be supported for years to come). iOS 11 drops no further screen sizes (but does drop some... uh, bit sizes?), and of course, adds iPhone X.

Disabling size classes & app layout in iPhone 6s vs 6

My app has size classes disabled.
I've been testing throughout the entire development on my iPhone 6 and making sure that all objects are where they are supposed to be and up to my standard.
However, I recently ran it on an iPhone 6s and it seems like things are all over the place.
How do I build a responsive layout that molds itself to an iPhone 6s as well as an iPhone 6?
I've been using auto layout.
If your app is targeted for iOS 9 use stack views in combination with auto layout. It will allow you to create responsive layout quite easy. First you should check some tutorial about stack view in iOS if you are not familiar with it.

Resize app designed for Iphone 6 to scale correctly in iphone 5s

Ok, here is the problem I have designed an application for iphone 6 screen without size classes and autolayout.
Looking like below in the storyboard. As you can see its simulated size is 4.7 inch.
It works perfectly when running on iphone 6 devices obviusly.
However when trying to run the app in other devices than iphone 6 it wont scale proportional.
My hope was that if I removed the lanuch screen images only keeping the iphone 6 size it would scale to fit other screens looking the same as if it where run on a iphone 6 only scaled up or down depenging on device.
My launch screen looks like this now
It does infact scale the app but it scales the app in wrong proportion making it looked chopped like this.
Iphone 5s version of the app looks like this
As you can see it scales correctly but the aspect gets wrong compared to the iphone 6 version below scaling correctly.
Here is an ipad version looking like the iphone 5s version scaling wrong.
It seems to me that the scaling works since I have removed all launch images except the 4.7 display (iphone 6) The problem however seems to be that it scales keeping the aspect of an iphone 5 in width making the iphone 6 display to wide.
I have tried to add launch images for all devices but the problem then is that I need to use autolayout and size classes to make it work.
Is there any way to for instance tell the scaling to keep aspect but use iphone 6 width and height intact without using size classes etc.
To make the question even more simple. Is there any way to scale an app made for strictly iphone 6 so resize to iphone 5s/ipad?
Any help is highly appreciated!
Well, the "trick" with removing the other launch images doesn't work, as you noticed yourself.. This automatic scaling only works from 4" to 4.7" and 5.5" and is only to support older apps on the new devices, not for general purpose "I am too lazy to support all sizes" use cases.. ;-) Apart from that, you should definitely support the native resolutions.
So, to answer your question: You can either just use Auto Layout. This is definitely the preferred approach - after all that's exactly the use case that it has been built for.
Alternatively, if you really don't want to or can't use Auto Layout, you either need to make sure to set your auto resizing masks correctly (e.g. "flexible width" on the stuff that needs to grow/shrink horizontally etc.), or adapt your frames manually in code (which partially defeats the purpose of IB).
If you didn't use Auto-Layout or Size Classes, your only hope is to programmatically change the positions/size of each element individually in the viewDidAppear or viewDidLayoutSubviews method of your LoginViewController. You would have to do it also on orientation change (if your app supports it).
It's a lot of work that can be easily be avoided by using Auto-Layout/Size Classes!

Xcode 6 layout issues

Recently, Apple Inc. has released new iPhone 6 and iPhone 6 Plus devices with a new OS (iOS 8) and tons of API changes. As well as there are more available displays' resolutions, an application should support at least 3 of them, I'm talking about iPhone 5/5S, iPhone 6 and iPhone 6 Plus. Xcode 6 follows another way it did in the previous version. Now, in most cases, you don't create a Scene for a concrete display size (e.g. 4 inch., 3.5 inch.) but you do create a form or a page sheet. It's basically bigger than even iPhone 6 plus resolution, due to a new way of maintaining layouts. As far as I'm considered, you must create layouts and only through them you can achieve supporting different resolutions.
What I am going for is a minor misunderstanding of how to setup my layouts to support at least those 3 devices I have listed above. The problem is being that I can support only iPhone 6 and iPhone 6 Plus with the best performance (i.e. objects are placed just as I wanted them to be). But what do I do for iPhone 5/5S support? Are there any resources I can read to understand the thing of layouts better? I appreciate your help in advance!
P.S. I tried to use a particular form's size in Interface Builder (4.7 inch., 4.0 inch.), but as well works only for the same resolution or higher.
An example is below. I have got wanted result for iPhone 6 and wrong thing for iPhone 5S.

Resources