Fragmentation Comes To iOS
dell623 writes "While the fragmentation issues in iOS are nowhere near as bad as Android, it can no longer be considered non existent. I have prepared a chart showing which features will be available on which device. While some restrictions are the result of hardware limitations, it is clear that Apple has deliberately chosen to limit some previous generation devices, and figuring this out isn't always straightforward if you're not buying the latest iPad or iPhone."
... that the submitter doesn't really understand what the word "fragmentation" means in this context.
Fragmentation is a developer problem that affects how easy it is to roll out software for the platform.
Apple keeps the core APIs consistent across devices. Everything you have listed is unrelated to the developer's ability to build their own apps.
Those are end-user features.
iPhone 4S does not have a resolution of 960x940. iPhone 4 does not have a 940x640 resolution. They are both 960x640.
hey!
What about my Model 5150 IBM PC?
Seriously, fragmentation is an issue with current platforms. No one expects an API or UI to stand still across all but a small range of minor system releases.
Have gnu, will travel.
Uh, what? The iPod Touch definitely uses iOS.
Admittedly, I was expecting a rundown of what device supports what version of iOS as well as the particular features of that version, but that was just me.
"If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
Most of these are things that iOS developers don't care about. For instance, Facetime over cellular: developers don't care about that, it's an Apple app, not an API, and evenif it was an API, you'd have to code for when it's unavailable anyway.
There are variations between the different models that developers have to be aware of, but they aren't covered in this chart. For instance, background modes are only available for ARMv7 devices. By and large, Apple have done a good job of shielding developers from these differences. I'm an iOS developer, and I very rarely have to even think about different device support. The two main ones are display size and display density - and Apple have only just announced the third display size ever, and they've only used two display densities ever. I can't really think of any platform outside of games consoles that are so homogenous.
Bogtha Bogtha Bogtha
Starting with the retina display, the programming API's for the iPhone took a one-way trip away from utilizing absolute pixel measurements, and referring to screen positions by resolution-independant "points", instead. In this way, coupled with the usage of floating point values for screen positions instead of integers, code would be made entirely resolution independent, without having to inquire about the phone's physical pixel resolution. All of the iPhone screens up until that time, whether retina display or not, were considered to be the same dimensions in these "point" sizes, so the same code could look and work exactly the same both on pre-retina and post-retina displays (perhaps only being of higher fidelity on the latter).
Now Apple decides it's time to make a phone with an entirely different aspect ratio. Really, what was the point of bothering with the resolution-independent screen positioning in their API's in the first place if they were just going to go and produce a completely different screen size that the programmer is going to have to write extra code to account for anyways?
File under 'M' for 'Manic ranting'
Uh, yeah. PCs are pretty much the poster boy for a fragmented platform, even within the scope of hardware that could run the most recent major operating system version (e.g., not just "286 vs. modern x86-64 system".) Wintel PC fragmentation is certainly far worse than even Android fragmentation.
That's always been one of the selling points for more tightly controlled, homogenous platforms.
Apparently the author of the "article" doesn't understand the distinction. I'm disappointed the editors let this one in.
No, you idiot. A network connection being unavailable is NOT fragmentation.
For the average user, fragmentation does not exist as a problem. It's like asking a Dell user; tell me, do you think the PC ecosystem is weakened by the system where you can buy an HP with a 17" screen or an Acer with a 21" one? Aren't you worried about fragmentation of the PC ecosystem?
Said user would look at you as if you were completely mad.
For the average, user the word fragmentation means nothing. Really, absolutely nothing.
There is an issue for developers, but even there the problems is relatively modest. Everyone writes to the Android specs of 2-3 years ago (mostly Gingerbread), and the world continues as normal.
And, the crazy bit is, of the top 100 apps, 98 are cross-platform anyway. Dropbox? Check. Angry Birds? Check. Evernote? Check. Every serious developer is already designing for both Android and iOS anyway (would anyone seriously consider building a mobile app designed to only ever being on one platform?), which means that any developer is already thinking about multiple form factors and resolution.
So: to finish, fragmentation is a wonderful phrase dreamt up by the depatment of FUD, but it bears about as much relevance to the real world as Elmer Fudd.
--- My dad's political betting
So, when the iphone apps that are pushed for the larger screen first are unable to scale down to the smaller screen iphone, how is that not a problem?
Here you are hypothesizing some apps might exist only for the larger sized iPhone.
But remember, Apple has this walled garden - why would they accept an app that did not work on both sizes of iPhone?
Furthermore, apps HAVE to be able to resize down. When a call indicator is active the space for the app contracts.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
There are four screen resolutions, which is the only thing developers (for which the term fragmentation typically applies) need to worry about. This includes the 3.5" iPhone/iPod retina display resolution, the new 4" iPhone/iPod retina display resolution, the iPad retina display resolution, and the older non-retina iPad display resolution, which is automatically converted.
There are five screens. There are the non-retina 3.5" iPhone/iPod touch devices. The 3GS was only obsoleted yesterday, developers are still going to support such devices. They are fully supported by Apple given that they will run iOS 6.
Also saying there are X screens that need to be supported is a little misleading. There are two parts to supporting a particular screen. One is the layout of user interface elements, the other is possibly skinning those elements (applying some sort of bitmap). When going between a non-retina and retina display the layout is the same. Layout is defined in terms of points not pixels, and since points = 1.0 pixels on non-retina and 2.0 pixels on retina there are no scaling artifacts to worry about.
So there are at most 3 layouts to worry about. 3.5", 4" and 9.7" (iPad).
For 3.5" and 9.7" non-retina and retina may be an issue for skinning those user interface elements. Given 1:2 scaling iOS can scale non-retina art quite effectively. Some apps might not need to supply retina versions of art. For those that do, or prefer to, iOS handles it automatically. The developer needs to make **no code changes**. Merely add a retina version of a given art file to the project. For example if my code/resources refer to image.png I add image@2x.png to the project. When the time comes to load image.png iOS automatically checks to see if it is running on a retina device, if so it checks to see if an @2x version of the file in question exists and makes the substitution if it does.
So there are at most four sets of artwork, iPhone/iPad and non-retina/retina, and the non-retina/retina case is handled by iOS not by an app's code or resources. Assuming of course that the app uses artwork in its user interface.
Note my use of "at most". If a developer targets only the 3.5" iPhone screen the app still works very well on an iPad or a 4" iPhone display. Both center the 3.5" layout, there is no stretching, everything looks exactly like the developer intended. On the iPad there is a 2x zoom button if the user wishes, again since it is an exact 2.0 scaling artifacts are minimal if any.
So while it is possible to only target one display, it is more plausible to only target two displays. Non-retina iPhone and non-retina iPad. If a developer is not doing any skinning and the user interface consists of entirely built-in UI widgets then we go from plausible to very practical since iOS handles the scaling for you. All one would miss out on are the extra pixels (in only one dimension) of the 4" display, the app would look exactly the same with absolutely no artifacts.
Indeed. And Apple does it less than almost anyone else. Before the iPhone, phone firmware updates were as rare as hen's teeth. I had a Treo 700p for many years and only got one OS update; none of my other cell phones ever had an update. On desktops, Apple supported the power PC chip for many years after they stopped selling it.
How often does an Android device (other than a Nexus) get an update? Hell, ignore updates, how many brand new Android devices come with an OS less than a year old?
There are many reasons to diss Apple. Not supporting older devices is not one if them.