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.
The last two items on your chart (iPods) are not iOS devices.
iPod Touchs run iOS (how else would they be able to run most of the same apps as the iPhone?)
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
par for the course for apple they also lockout 64 bit only os on 64 bit hardware due to it only having 32bit EFI. But the same systems can boot 64 bit windows os.
Also the video cards don't have 64 bit drivers on the osx side but you can put in newer videos cards in them.
Also they can run the 64 bit only mac os x but you need to use the same tools that you use to run mac os x on a non apple pc.
What, was the bottom of this page unclear?
I live ze unknown. I love ze unknown. I am ze unknown.
Why are the 3GS (a 3 year old design), iPad1 (2.5 years old) and iPad mini (rumored device at this moment) on the list? Why aren't things like hardware acceleration, smooth scrolling and other basic features that didn't exist for Android as of a few months ago on the features list? Hell, why isn't front/back camera on that list - no complaints that the iPod touch even have an external speaker until v2?
As it stands there are basically three screen ratios (3:2, 4:3 and now 16:9), 3 device categories (phone/ipod/tablet). A whole lot less variety and scattered than Android where this kind of list would require a large spreadsheet to make sense of.
This list is a bit of a stretch. The phones that are currently being sold (4, 4S, 5) have very similar capabilities to each other, as do the tablets.
Make sure everyone's vote counts: Verified Voting
what fragmentation? there are three phones supported by ios6
Which means that there are a few tens to hundreds of millions of actively used phones that will never even run the current OS... That's sort of what 'fragmentation' is all about...
To be sure, Android is substantially more fragmented even if you only look at 'currently-sold-and-supported-by-people-you've-heard-of', since there are multiple hardware OEMs shoving handsets out; but unless you start killswitching all your products, 'fragmentation' inevitably happens whenever people don't stop using the older ones and you introduce something new.
The 3GS was being sold by Apple until two days ago.
The iPad 1 was the only iPad you could buy until March last year.
It's not about Android vs iOS..
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'
I guess that means PCs are fragmented.
Yep, they always have been, that's why you have seemingly endless configuration options for different applications - most often games - where as on say a gaming console you don't need them because the platform is consistent.
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.
"Fragmentation" is a word, and depending on the context and how it's applied, it can refer to many things. Whether you're being obtuse or are just misinformed, it's clear that you're using it to refer to user fragmentation that occurs as the result of having different feature sets on different devices. Unfortunately, that is not the type of fragmentation that is in any way relevant to conversations about fragmentation in the mobile space. User fragmentation is desirable (to an extent), since it helps to drive demand for new products.
In the context of Android vs. iOS discussions, people are talking about device fragmentation, that is, the things dividing the devices into different groups for which the developers must separately develop. In that regard, this chart does essentially nothing to address the relevant topics. Resolution or OS version would be appropriate topics for discussion, as would CPUs, since all of those might dictate what apps can exist on the phone or how developers will need to change an app to handle a specific phone's capabilities. But the question of whether a phone has flyover navigation or video stabilization is orthogonal to the question of whether or not a developer can write a specific app for the phone.
No, you idiot. A network connection being unavailable is NOT fragmentation.
No it's not, and stop shouting.
You have to code everything that relies on the network on mobile devices to handle cases where it is unavailable because they frequently lose connectivity. Is an iPhone going through a tunnel fragmenting the platform because it doesn't have Facetime while an iPhone that isn't going through a tunnel does have Facetime? Of course not.
Let me give you an example. Today, I was working on an app that had a button to make a phone call in it. Oh no! This terribly fragmented platform includes devices that can't make phone calls. What a disaster! Oh wait, no it isn't. I just hid the button when making calls is not available. A grand total of three lines of code, including one line that was nothing more than a curly brace. Took me less than five minutes to code and test.
There are probably fewer than a dozen features like this that I've ever had to handle like that in four years of developing for iOS. It's incredibly trivial.
Bogtha Bogtha Bogtha
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
This is not fragmentation, this is product differentiation.
Fragmentation on Android is having a user base on a ton of different OS and hardware versions with wildy different feature sets and not being able to target software to run on all of them. As a result app developers focus on the majority device/OS target, often an ancient version of Android, which renders all the latest APIs Google has released pretty much useless.
With the majority of iOS devices in use able to upgrade to the latest OS version this developer headache just doesn't exist for Apple. It's easier to target the majority of devices, even rolling 'hybrid' apps that can selectively take advantage of newer features e.g. Retina display and the taller screen.
Choosing to deploy new features on new devices isn't fragmentation, it's a way of differentiating within a product line up.
And the last time I checked iOS 6 will be supported on the iPhone 3GS. A *three year* old phone.
"We live in a global world" - Harvey Pitt, former Securities and Exchange Commission Chairman
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.