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.
My old 286 can't run 64-bit apps, or even 32-bit apps. I guess that means PCs are fragmented. They added an extra resolution, and made the old resolution still work with new devices.
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.
Now do one for Samsung's phones!
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."
that's it.
Other than the 3GS that is.
<xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
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.
Yes, they are. All generations of the iPod Touch run some incarnation of iOS, and have access to the app store and all that other sort of goodness. They more-or-less have hardware parity with their iPhone brothers, aside (sometimes) from ancillary features such as GPS, cellular radios, screen type (TN vs. IPS), and the like.
They all run the same programs, and function the same way.
(It was at this point that I stopped reading. If you can't keep your most basic facts factual, I'm not interested in whatever else you might be saying.)
Kid-proof tablet..
Fragmentation is really only with API calls, not things like "Face Time over Cellular" or the availability of "iPhoto"...
Screen resolution is fragmentation.
What, was the bottom of this page unclear?
I live ze unknown. I love ze unknown. I am ze unknown.
To be honest I'm much more annoyed by market (or zone, region, whatever) imposed by retards. For example you can't download Citibank usa application from Europe. You happen to have an account in a USA branch? too bad.
When it comes to developers, "fragmentation" means you can't target a single device. That you have to code for a generic lowest common denominator device. IOS developers can still safely target the IPhone 5 and include support for the IPhone 4S for new mobile apps. Supporting the same time period in Android means supporting dozens if not hundreds of phones and phablets.
I thought you were talking about the other new iPods that look like iOS devices.
It's still the case that iPod Touches can try to locate position from WiFi signals.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
what fragmentation? there are three phones supported by ios6: iphone 4, iphone 4s and iphone 5. then you have ipads. that's it.
And the iPod Touch.
Only the iPod Nano isn't an iOS device. The Touches definitely are.
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
The last two items on your chart (iPods) are not iOS devices.
The last two items are the iPod Touch, which is an iOS device.
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 iPod Touch is an iOS device. http://www.apple.com/ipod-touch/ios/
If iOS fragments, does that make it schizoOS? Maybe you can give it thorazine and make it sedatedcrazyiOS.
The iPods are not iOS devices?? Apple says they are iOS devices: http://www.apple.com/ios/whats-new/
Figuring 'something' out from WiFi works only in dense urban environments, and even then isn't good enough for turn by turn navigation, which Apple claims is supported by the iPod Touch and iPad,
iPod Touches definitely are iOS devices, just without the cellular modems and with a light dusting of contempt from Apple when it comes to adding the punchier new hardware... Estimates are that 40-ish percent of iOS devices are ipod touches.
I don't think I'm a serious reporter :) And so I don't get paid for writing this, and don't have time to pretti-fy it for you.
I would agree with you, except that I thought he was referring to the new iPods that LOOK like iOS devices. I did issue a correction on that point.
Now you can keep reading.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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..
I thought he was referring to the new iPods that look like iOS devices. Mostly because they listed "GPS: NO" without the same kind of side-note that the iPads had that they could use WiFi for location.
The list of which devices support which version of OS would be more interesting, but in practice developers do not support iOS versions more than three versions ago (at this point nothing older than iOS 4). The 3Gs can still update to iOS6 so really it will be a target for testing for at least two years more.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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'
...newer hardware can access newer features. KTHX.
every kind of screen size and shape and aspect ratio, it's insane.
Yeah we've had THE EXACT SAME SITUATION ON THE DESKTOP.
FOR YEARS AND YEARS
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.
The 4 and the 4S have the same screen size, 640x960.
http://www.apple.com/iphone/iphone-4s/specs.html
http://www.apple.com/iphone/iphone-4/specs.html
"fragmentation" is when you have to tell SOME of your users "you can't do that thing that others are doing"
"fragmentation" is DIVIDING THE USERS INTO GROUPS
Which is EXACTLY what happens when some users have a feature and some don't.
Ha! You'll make about "three fiddy" for every million users that- (Fry Squint) Ahhhhh, I see what you did there!
So all you have to do is tell the app store "This app requires iOS 6", just think of all the different system requirements on the sides of pc game boxes. this is nothing like that. either it's ios6 or it's not. it's not really a fragmentation issue so much as a backwards compatability issue. see...there are still android 2.2 devices being sold new right now! totally different. if i tell you your 5 year old phone is supported well too bad on you, time to upgrade. if an android developer tells you his app won't work on the shitty android 2.2 device you bought in chinatown, that's a different story. ..
Apparently the author of the "article" doesn't understand the distinction. I'm disappointed the editors let this one in.
EVERYONE cuts off older devices and technology. Nothing new here.
Apple is disgraceful in the way that it dumps old hardware and software. There is a tremendous amount of older hardware which could easily run the new MacOS and iOS with some features turned of that is beyond the capability of the hardware. Very easy to program.
There is also a tremendous heritage of older software, particularly in the educational field, that is not being produced today that Apple should continue to support. Their abandonment of Classic, Rosetta, etc is pathetic.
They can make gobs of money of the old hardware by offering OS upgrades. It is very ungreen of them to create all this etrash.
You're the sucker for buying their hardware, why do you blame others for your own failures?
"I bought a Ford car and it's junk because I can't just drop my Chevy engine into it"
This traditionally is not called fragmentation
Tell us ALL ABOUT the "traditions" in this market that did not exist ten years ago.
Close, but not quite. I live in a rural area, and my iPad figures out locations pretty reasonably within 300 feet or so. Admittedly it will struggle with location in the middle of nowhere, but a "dense urban environment" is not required. Somewhere within line-of-sight to a house or two that has a wifi router (almost all houses in USA these days) will do.
If you amend your statement to "urban or suburban environment", I agree with you!
Matthew P. Barnson
I learn what I think when I read what I write
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.
"in the mobile space" What a LOSER. These are JUST TINY COMPUTERS.
people are talking about device fragmentation, that is, the things dividing the devices into different groups for which the developers must separately develop.
So user fragmentation is when the devices are different, and device fragmentation is when the devices are different?
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
You can ML on any Mac that has 64-bit support in the chipset.
You have to code everything that relies on the network on mobile devices to handle cases where it is unavailable
REALLY? Last I checked, mobile browsers "rely on the network" and they have NO special code to deal with when the net is down.
Siri, GPS, front-facing camera, mic, even the freakin' speaker. (iTouch, first-gen) What else iPhones can typically be assumed to Always Have Data Access. Proximity sensor is MIA on iTouches, which was important for the Google app, at least. iTouches don't have the silence switch, either.
And we're complaining about Ah, backgrounding. That thing that requires a boatload of CPU power and RAM that the ARMv6 devices can't be counted on having.
At least complain about something really app-breakingly important, like the GPS receiver.
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.
CONGRATULATIONS for DISPROVING YOUR OWN POINT, introducing HARDWARE DEPENDENCIES into your code.
Phone that by this point are at least 3 years old if not 4.
HTC and Samsung won't support their android phones 6-12 months after release Apple is giving you 3-4 years of support and updates.
Apple is basically supporting 286 and 386 computers when Pentium's are the new norm.
i thought once I was found, but it was only a dream.
Fuck, I just got this iPad,and you're telling me it doesn't do panorama? Sigh. Anyone want a slightly used 16GB wifi tablet? Sadly, it has the A5X, instead of the A6, but the relentless march of progress doesn't stop for stragglers.
All reasonable offers excepted.
And if a desktop software developer complained about something as trivial as screen resolution variations, they'd be laughed out of the room.
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
the mac pro 1.1 needs the Chameleon bootloader to run 10.8
For some reason that's what I thought the list had...
Oh well.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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
Honestly, the screen size isn't a big deal.
As an example, I'm about to ship a new app to the app store, as soon as my company settles on a product name. Meanwhile, adding support for the new screen size involved... dropping a new launch image into the project.
Literally, that was it, not even a line of code. Since all my views already took into account different screen sizes to support properly laying out on both the iPhone and the iPad, it all happily resized itself to the new screen size exactly the way it was supposed to.
So what's the problem again?
Come on Apple... The iPad 2 and iPhone 4S have basically the same CPU, storage, and memory specifications. Both have a microphone and speakers. Siri should run fine on both platforms.
That said, why is Siri available for the last generation iPhone but not the last generation iPad?? It makes no damn sense.
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.
You're an idiot. I just can't tell if you're being an idiot on purpose or if you just can't help it.
In case you really are that bindingly ignorant of both mobile browsers and common sense, yes, mobile browsers do include code to handle connectivity issues.
Bogtha Bogtha Bogtha
To force people to buy a newer one maybe
But forcing the app to allow both sizes means that something like 10x more people can buy an iPhone to use it (since device cost now ranges from free to $299, instead of just $299).
"There is more worth loving than we have strength to love." - Brian Jay Stanley
For the first two the answer seems obvious, an awful lot of people have them. If you are writing software you want people to use then that is kind of important.
Apple's challenge is to manage the competing problems of fragmentation and stagnation. To my mind stagnation is possibly a bigger issue for Apple. Personally I have a 3GS and even the 5 still seems like an extremely iterative release.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
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?
Programmers don't have to do anything. If they do nothing the app looks exactly the same on the iPhone 5 as it does on an iPhone 4. The app is centered on the display and the portion used is a pixel by pixel match, its even physically the same size given that pixels per inch is the same between the two devices. Its similar to what was done when running iPhone apps on an iPad. Of course in the iPhone 5 case the unused pixels are minimal.
If you have to sign a 2 year contract then they are not giving it away for free.
My two year old nexus S runs everything from voice recognition to panorama shots with the jellybean OS.
Rocket Surgeon.
You really think that browsers don't check to see if there is network connectivity?
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.
The API is consistant across all the devices. Even ones where facetime is not available, the API for it still is. You still have to check if facetime is currently available or not.
if (!facetime.IsCurrentlyAvailable) { facetimeButton.Hide(); }
Boy, that was hard. It handles iPhone, iPod, iPad. It handles if the iPhone is in airplane mode, the iPod in airplane mode, or the older iPods without a front facing camera, the iPad in airplane mode, any of the above when not on a WIFI connection, etc.
The equivalent code for a droid could easily exceed a couple dozen lines of code or a few thousand depending on what you needed to abstract.
But even the GPS receiver is already abstracted for you by the OS, which is available across all the devices. I haven't actually looked that the location API, but it's quite easy to determine what is available. You probably just call a function that will tell you if it's never available, not currently available, or it is currently available or something to that extent. Devices with no GPS but have a cellular connection will still give you a location based on cell tower triangulation. Those with WIFI will use known WIFI SSID's to give you a location.
On the droid you'd need to check the currently running OS to even see if the API to check is available before you try to call it. Then you need to call to check to see it's status (if there is an API for it), otherwise you need to go looking yourself to see if the hardware is present (or which hardware of a few might be present), then try to abstract out the differences yourself. Much fun.
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.
...and can run 64-bit OS X applications (you don't need a 64-bit XNU to run 64-bit OS X applications), so "no 64-bit XNU" isn't as severe a limitation as one might think.
So you say that having two groups of users, one of which has constant IP connectivity, and one that does not, that's not fragmentation?
You are saying that the mobile apps that rely on constant connectivity, will work fine in devices that don't have this feature?
No, that's not fragmentation. That's some people having network access all the time and some only some of the time. All that means is that apps which truly rely on a network connection won't work all the time for the latter people.
Fragmentation is when you need to produce several subtly different versions of the same app that does the same thing because there's several different devices that all run what is allegedly the same operating system but each manufacturer has made little modifications that make them incompatible with everything else.
http://www.monstertechblog.com/2012/05/12/this-is-androids-fragmentation-and-it-is-still-a-feature-opinion/ - no, really, its a feature. Believe me.
Of course news about a fake are Fake News.
No, having two groups of people that both sometimes have IP connectivity and sometimes don't, but at differing ratios is not fragmentation. My iPhone has no IP connectivity on large swaths of Highway One, esp. north of San Fran. Software attempting to deal with that is no different from software in my iPad which has cellular data hardware, but I've turned it off until I decide I want to reactivate my data contract. Software attempting to deal with both of those is no different then running on my wife's old (WiFi only) iPad.
So you say that having two groups of users, one of which has constant IP connectivity, and one that does not, that's not fragmentation?
It's not because NEITHER group has constant connectivity.
Someone with a cell network might have connectivity more often, but you have to code to have it fail in horrible ways or become unusably slow.
Ironically the people without a cell network are a much easier test case, as WiFi has far fewer failure modes - it generally works or it doesn't. All of the complexity in writing any app that relies on a network comes in support the cellular users, and the non-cellular use cases are just simple subsets of that which require no further effort.
You are saying that the mobile apps that rely on constant connectivity, will work fine in devices that don't have this feature?
If you do not code them such that they behave the same in either case, you have failed.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The parent was talking about Mountain Lion which includes no such option.
The parent didn't use the word "Lion" anywhere, so you're making an assumption that they were talking about Mountain Lion.
If they were, then Mountain Lion, like its predecessors going all the way back to at least to Panther, doesn't support all of the machines that its predecessor did; this is not unique to Apple's OSes, either, so whining about Apple there is bogus. Perhaps Microsoft (or Canonical or Red Hat or...) makes different choices as to which older machines to kick to the curb, but they still make those choices.
Meh, not to worry, this whole article sucks anyway.
That is a bit of a narrow definition. I'll totally grant that that is fragmentation, but many other things are as well. Some are simpler to deal with then others (GPS/no-GPS-but-WiFi-psudo-GPS is only an issue if your app needs high accuracy position data). Needless software fragmentation is the most annoying because it doesn't really make life better for anyone while a lot of hardware fragmentation exists either to satisfy a price point (and therefore bring a device to a set of people that wouldn't have been able to afford it, or a feature to people willing to fund it without forcing others to do so), or because things do tend to get better year to year. The "our brand of Android has this and that extra, and that and the other changed a little" feels too much like the 80/90 Unix fragmentation that didn't make Unix users happy, and I think ultimately cost it the chance to win big on the desktop (or for a more charitable view, delayed victory until OSX came in...but I think that is wishful thinking, OSX has a non-trivial percentage of the desktop market, but Windows is dominant there). Now just because it worked out badly before doesn't mean it will do so again (we are not doomed to repeat the past, not always at any rate), but it still smells bad.
I would say iOS has a few differences from device to device. Many of which have graceful fallbacks. A very few of them do not. Even so it is just a tiny handful of things, and for the vast majority of apps comes down to supporting two very different screen layouts, and a third similar layout, and two sets of pixel density for artwork (or using lots of vector art). That is pretty much it for "normal" apps. Some apps need to worry because they push the CPU and/or the GPU very hard so they need to scale back on slower hardware, but that is mainly games and games do that everywhere except consoles.
Android Orphans: Visualizing a Sad History of Support is almost a year old now, but it does a great job of illustrating the difference between iPhone versions and common Android devices.
Other than the original G1 and MyTouch, virtually all of the millions of phones represented by this chart are still under contract today. If you thought that entitled you to some support, think again:
I believe it's gotten a little better since then, but those numbers are horrible. 39% never ran a current version. 67% only ran a current version for a matter of weeks (keep in mind that most of these would be on a 2 year contract). 83% weren't on the version that was released almost a year prior. 72% stopped getting updates while they were still being sold.
Compared to that, the 3+ year old 3GS missing a few newer features doesn't sound so bad. I do wish my old 3G was still supported, but it's honestly so much slower that I don't like using it much anyway.
Opera doesn't on my iPad. It tries anyway and then fails.
Change is certain; progress is not obligatory.
So Android manufacturers can put out devices of all different shapes, sizes, feature sets, APIs, and OS versions, but it's not fragmentation - it's enhanced consumer choice.
Apple releases one device with the same API, same OS version, and a new screen ratio (and a rather obvious and seamless method of adapting to it) and it's ERMAHGERD, FRERGMENTERSHERN! Think of the poor developers!
So whose shitty blog are we going to submit next in this Android circlejerk?
As someone who owns an iPad. I personally feel mislead by Apple's adverts, mainly the ones stating "Theres an app for that". Wheres my app for changing my default browser? Wheres my better e-mail application that is closer to Zimbra or Outlook? Where is the search that doesn't suck?
In some instances I prefer the Google Play store that I have on my phone, I don't have to spend hours finding an application that is really free and not some trial or subscription based crap (take a look at CRM choices as an example). I don't even need an app to change my default browser on Android, but pretty sure if someone made such an application, it wouldn't get rejected unlike the Apple store.
Change is certain; progress is not obligatory.
iPhone users lead a pretty sheltered life. They don't know much about the other platforms, as a rule.
-Dave Haynie
Most iPhone users don't know anything beyond what they are given (not do most users in general). They don't care that they're locked into a single browser engine or can't use widgets on their home screen either. Basing your business on controlling the ignorant is profitable, but fails as people learn that other options exist.
While true, keep in mind that the 3GS was a current model up until last Wednesday. AT&T was still selling them... actually, they still are, while supplies last.
-Dave Haynie
Apple accepts apps that only work on the iPad
That's totally different. Apple has made very clear the iPad is a different platform, with different UI needs.
I know Android people like to think of tablets as simply scaled-up phones; but that is also why there is such a gap in Android tablet sales. A tablet IS a different platform, with very different UI needs.
Again, on the iPhone platform applications need to scale or they will not be accepted.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Poor baby. :)
Change is certain; progress is not obligatory.