Slashdot Mirror


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."

39 of 244 comments (clear)

  1. It's pretty clear.... by Anonymous Coward · · Score: 5, Insightful

    ... that the submitter doesn't really understand what the word "fragmentation" means in this context.

    1. Re:It's pretty clear.... by mrxak · · Score: 5, Insightful

      Is slashdot just linking to people's random ass blogs now? This has got to be the most pointless and uninformed article I've ever seen here. Or it's a troll.

    2. Re:It's pretty clear.... by Anonymous Coward · · Score: 2, Interesting

      Of course. In android world, the so called fragmentation is actually "choice", while in Apple world, it's truly fragmentation.

    3. Re:It's pretty clear.... by Mike+Buddha · · Score: 4, Interesting

      iOS fragmentation is far worse than Android fragmentation, because the Apple App Store has no problem selling you software that you can't use on your devices. Google Play won't let you buy an app that won't work on your device, which mitigates a lot of the problems that exist because of fragmentation.

      It's annoying because decent software will get rated down on the App Store because it doesn't work on the iPad 1 and angry suckers leave low ratings to show their anger at Apple's incompetence.

      --
      by Mike Buddha -- Someday the mountain might get him, but the law never will.
    4. Re:It's pretty clear.... by mrxak · · Score: 5, Informative

      I have an ad-blocker, but I assume the page has ads on it and the submitter is just looking for some hits. Nobody should RTFA, just read this post.

      He has four products on there that are not currently being sold. One is entirely made up, with made up specs, in a product category that doesn't exist.

      Of the remaining six, there's not much fragmentation at all. 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. The submitter made several factual errors with the resolutions, but that's the gist of it. Clearly going forward, there will be just two resolutions that developers need to worry about. One for the iPhone/iPod, and one for the iPad, as the older resolutions are being phased out and don't exist in any new products. This means the platform is no more fragmented than it was when the iPad was first introduced.

      There are no dramatic API differences between the various iOS platforms, just the usual and obvious differences in available hardware. iPods and iPads don't have cell network assisted GPS if they don't have chips in them to access cell networks. iPods and iPads don't have Facetime over cell networks when they don't have chips in them to access cell networks. Advanced features of the camera system or microphones are not possible on devices lacking the necessary computing power to handle them.

      All in all, nothing in this random submitter's blog post addresses true fragmentation, the sort you see in the Android platform due to API differences and hundreds of different screen resolutions.

    5. Re:It's pretty clear.... by BasilBrush · · Score: 4, Insightful

      The bigger point he's missing is that he doesn't even understand what fragmentation means. Fragmentation is multiple parallel products that have incompatibilities. It's NOT current devices currently being on sale being different from older models in the same series let along devices that are no longer on sale. You can argue that there's iOS device fragmentation as far as iPhone vs iPod Touch vs iPad. But the iPhone 3GS and the iPad 1 aren't even on sale any more.

      Android is horribly fragmented because there is a huge number of current products with many hardware incompatibilities AND many don't even ship with a recent version of the OS. However much Android fanboys wish iOS devices had the same problem, they just don't.

    6. Re:It's pretty clear.... by BradleyUffner · · Score: 2, Informative

      The big difference is that you can only buy apps directly on your Android device so Google Play knows what you have. The iTunes store on my devices also exclude items that won't work with the device I'm buying with.

      But if you're using iTunes on the desktop, how is it supposed to know which device of yours you're getting the app for? You could have 15 devices registered, some which would work, others that wouldn't. Every app on the store though lists the required hardware and OS version.

      Not true. You can go to the Android store on a browser from any computer while signed in to your account and purchase / install any application directly from the pc. Google will push the application out to the selected device without any user intervention. It knows what devices you have and what features it supports and will filter the applications accordingly.

    7. Re:It's pretty clear.... by blackraven14250 · · Score: 2

      There isn't a single ad on the page. Seems like he's just an Android guy looking to dig at Apple (and I say this as an Android user myself).

    8. Re:It's pretty clear.... by Mike+Buddha · · Score: 2

      No. That's flat out not true. When you log in to purchase the application, you'll get a big fat "no can do, boss" when you attempt to purchase and you don't have a device on your account that can use it.

      --
      by Mike Buddha -- Someday the mountain might get him, but the law never will.
    9. Re:It's pretty clear.... by el_chupanegre · · Score: 2

      Clearly going forward, there will be just two resolutions that developers need to worry about. One for the iPhone/iPod, and one for the iPad, as the older resolutions are being phased out and don't exist in any new products.

      The old iPhones/iPods/iPads don't cease to exist just because Apple brings out a new one. There is an absolutely enormous installed base of "old" resolutions out there that might still buy your apps, so you can't just start ignoring them. If you want to develop an iOS app you now need to consider whether you accept your app being run in "black bars" mode on the new phone (almost certainly not), or handle the fact that resolution changes depending on which device your app is installed on. I haven't looked at the API so I don't know how much of a PITA that may or may not be, but it definitely needs to be taken into account. The fragmentation is not nearly as bad as on Android, but it definitely exists and needs to be catered for.

    10. Re:It's pretty clear.... by rundgong · · Score: 2

      I'm not sure you understand fragmentation either.

      Parallel products does not mean "on sale at the same time", it means "in use at the same time".
      Just because they stop selling the old Iphone model it does not mean all the people who bought those will stop downloading apps.

      As long as your potential customers are using their old devices they contribute to fragmentation

      You are absolutely right that fragmentation is much worse on Android though.

  2. It's not the same issue. by Anonymous Coward · · Score: 5, Informative

    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.

    1. Re:It's not the same issue. by fuzzyfuzzyfungus · · Score: 4, Insightful

      The chart in TFA is entirely useless, since it focuses on end user features that apple has or hasn't included on various models; but there is the not-so-minor matter of spec changes(TFA's chart doesn't even touch them; but 'keeping the core APIs consistent' also doesn't address them). There are some pretty significant differences in CPU and GPU power, and how quickly the OS will run out of RAM and quietly start memory-managing you, between those models.

      If your 'app' is just some lousy re-implementation of a website that you really wanted to flog through the app store for some reason, it probably isn't a big deal; but anybody who really needs the punch provided by running native can't necessarily ignore that.

  3. Erroneous Info by MoronGames · · Score: 3, Informative

    iPhone 4S does not have a resolution of 960x940. iPhone 4 does not have a 940x640 resolution. They are both 960x640.

    --
    hey!
  4. You insensitive clod! by PPH · · Score: 3, Informative

    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.
  5. Re:Not to Developers (and your chart is flawed) by ehynes · · Score: 2

    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?)

  6. Re:Not to Developers (and your chart is flawed) by steelfood · · Score: 4, Insightful

    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."
  7. Not great by Bogtha · · Score: 5, Informative

    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
  8. par for the course for apple they also lockout 64 by Joe_Dragon · · Score: 2, Interesting

    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.

  9. Need Page Impressions? by hondo77 · · Score: 2

    What, was the bottom of this page unclear?

    --
    I live ze unknown. I love ze unknown. I am ze unknown.
  10. 3GS, iPad1 and iPad mini should not be on the list by rsborg · · Score: 2, Interesting

    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
  11. Re:oh spare me by fuzzyfuzzyfungus · · Score: 2

    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.

  12. Re:3GS, iPad1 and iPad mini should not be on the l by dell623 · · Score: 2

    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..

  13. I don't get it... by mark-t · · Score: 4, Interesting

    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?

  14. Re:Um, new features on new devices isn't new by exomondo · · Score: 2

    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.

  15. PCs are fragmented by DragonWriter · · Score: 3, Informative

    My old 286 can't run 64-bit apps, or even 32-bit apps. I guess that means PCs are fragmented.

    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.

    1. Re:PCs are fragmented by sunderland56 · · Score: 5, Funny

      Uh, yeah. PCs are pretty much the poster boy for a fragmented platform,

      Yeah, but every PC comes with a defragment utility.

  16. A feature comparison != fragmentation by Anubis+IV · · Score: 3, Interesting

    Apparently the author of the "article" doesn't understand the distinction. I'm disappointed the editors let this one in.

  17. Re:WRONG by Anubis+IV · · Score: 2

    "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.

  18. Re:totally incoherent! by Dog-Cow · · Score: 4, Informative

    No, you idiot. A network connection being unavailable is NOT fragmentation.

  19. Re:totally incoherent! by Bogtha · · Score: 2

    you'd have to code for when it's unavailable anyway.

    This is PRECISELY what FRAGMENTATION is ALL ABOUT!

    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.

    Spending development time on stuff that SOME of your users WILL NOT BE ABLE TO USE.

    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
  20. Fragmentation = Consumer Choice by rcs1000 · · Score: 4, Insightful

    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
  21. Apps have to scale down. by SuperKendall · · Score: 3, Insightful

    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
  22. NOT fragmentation. by mr_lizard13 · · Score: 2

    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
  23. There are five screens ... same layout for some by perpenso · · Score: 3, Insightful
    I agree that what "fragmentation" exists is certainly far different than the fragmentation that exists under Android.

    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.

    1. Re:There are five screens ... same layout for some by perpenso · · Score: 3, Informative

      This isn't technically correct:

      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.

      Yes, the defined measurement system is points (1/72 inch) and yes, the retina displays are exactly 2.0x the width and height, but when displaying legacy apps on a retina device iOS will place black bars along the edges of the screen to make room for the "1x"/"2x" buttons. So it's closer to 1.8x scaling.

      No. The 1x/2x buttons are for running an iPhone app on an iPad, not running a non-retina app on a retina. At 2x a non-retina iPhone app takes 960x640 of the iPad's 1024x768 pixels. There is room for a 1x/2x in the blank regions outside the centered 960x640 app.

    2. Re:There are five screens ... same layout for some by beelsebob · · Score: 2

      Score: -1 Wrong

      The above post is dead on technically accurate, all layout on iOS is done in points, both the iPhone 3GS and iPhone 4 are 320x480 points. On the 3GS, 1 point will map to 1 pixel, on the 4, 1 point will map to 2 pixels. Most devs can simply provide higher resolution art work (with the same name, but @2x added to the end), and their app will magically support retina.

      So the bottom line – you need to support exactly 3 resolutions:
      320x480 points
      320x568 points
      1024x768 points
      The first and second are trivial to do with a couple of autoresizing constraints to make your table views stretch the height of the screen, and your controls at the bottom stay attached to the bottom. The last one is a bit more work to rearange everything, but you can typically charge more for an app if you do so.

      There is no 1.8x scaling involved, the black bars and the x2 button you're thinking of appear when running an iPod application on an iPad, and it is scaled by 2 times.

    3. Re:There are five screens ... same layout for some by borrrden · · Score: 2

      One point will actually be 4 pixels, not 2 (2 horizontal and 2 vertical since it is 2x in both x and y).

  24. Re:Apple cuts off older devices and technology by kqs · · Score: 3, Insightful

    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.