Slashdot Mirror


Who's Afraid of Android Fragmentation?

Nerval's Lobster writes: The dreaded term "fragmentation" has been applied to Android more times than anyone can count over the past half-decade. That's part of the reason why game developers often build for iOS before Android, even though Android offers a bigger potential customer base worldwide, and more types of gaming experiences. Fortunately, new sets of tools allow game developers to build for one platform and port their work (fairly) easily to another. "We've done simultaneously because it is such a simple case of swapping out the textures and also hooking up different APIs for scores and achievements," London-based indie developer Tom Vian told Dice. "I've heard that iOS is a better platform to launch on first, but there's no sense for us in waiting when we can spend half a day and get it up and running." So is fragmentation an overhyped roadblock, or is it a genuine problem for developers who work in mobile?

6 of 136 comments (clear)

  1. Re:Who's Afraid of Android Fragmentation? by geminidomino · · Score: 3, Informative

    Johnny 5 was a sentient robot, not an android (not human-shaped).

    Dammit, now I have to find the HDD with that movie on it. I blame you.

  2. It's not just the fragmentation by SeaFox · · Score: 4, Informative

    One of the reason people developed for iOS first was the platform had users who on average had higher incomes and spent more money on apps. So if you were trying to develop an application to sell it was more likely to show a return. Also there is more piracy of apps on Android.

    1. Re:It's not just the fragmentation by Anonymous Coward · · Score: 2, Informative

      Bullshit.

      The last thing the PC is, is fragmented.

      PCs have standard hardware interfaces for things like, you know, booting an OS. Accessing your framebuffer. System busses.
      Android devices have none of this. Every device, every ARM SoC is roll-your-own and almost never documented. (Just ask the cyanogen devs what they think about fragmentation. Protip: Wear earplugs)

      Windows (and lets be frank, we're talking about microsoft OSs here) has literally millions of lines of code devoted just to paving over the rest of the dumb shit hardware manufacturers consider acceptable. (ACPI, power management in general, broken bios crap, shitty drivers)

      On top of that, windows has a host of some of the most beaten, tested, mature software APIs on the planet. If you write a piece of software for windows and don't be a fuck-up about it, it will likely run, usably, on ANY windows PC for a good 20 years.

      This is the literal fucking opposite of fragmented.

      Once upon a time, my 4 digit ID old fart, the PC space was badly fragmented. Do you remember that?

      Remember the PCjr?
      Remember Tandy?
      Remember XMS, EMS, Highmem?
      Remember scouring software boxes for words like Hercules, CGA, EGA, VGA?
      Creative, Roland, Gravis?

      That was fragmentation. That was a bad time. Fortunately, we've not had to deal with that since the mid-90s.. which was a good 20 years ago. Funny how that works.

  3. Just good ol' fashioned (in)compatibility by allquixotic · · Score: 4, Informative

    Software fragmentation at a high level hasn't been all that scary of a specter for Android yet. Hook into a few core APIs that pretty much work everywhere, and off you go. There haven't been any successful whole-system Android forks that have been able to challenge mainline Android with any semblance of significance in market share.

    The problem is in the details of the hardware, and to a lesser degree, software implementations. Screen resolutions; GPU capabilities; the difference in performance between the slowest and fastest (non-obsolete) device on the market; highly variable amounts of storage, VRAM, network bandwidth; limited vs unlimited data plans; the amount of other crap (that may interference) that the user or manufacturer has already installed on their phone; etc. etc.

    A lot of devs are starting to whitelist their apps for specific phones, or at least for specific SoC make/model/generations. Your OpenGL fragment shader may run fine on a Qualcomm Snapdragon platform with an Adreno GPU, but crash the app or the whole system on ARM Mali. Your game may get 30-60 FPS reliably on a modern Tegra GPU, but deliver a slideshow on a Droid Mini from late 2013.

    And that brings me to my second point: the hardware advances too quickly. A lot of people expect their smartphone to last them 4 years, maybe longer. But if you look at how far phone specs have come since 2010, it's pretty ridiculous. Most 2014 Android games and even non-trivial business apps won't even *launch* on a phone with specs 1/10th as capable as the state of the art.

    These problems are hard enough to solve on their own. Most devs don't even have time to think about supporting other core systems with forks or replacements of the core Android APIs.

  4. Re:There's fragmentation on iOS too... by Anonymous Coward · · Score: 2, Informative

    Riiiight. That's why I can get an update for the OS direct from Apple but I'm at the mercy of a carrier for Android? This is starting to sound like the old Linux conversations... "You don't need to wait for the distro to update as long as you're willing to go in and change 17 different config files and download some obscure packages from some repository that no one has ever head of."
     
    I've never had a single app not work on an iPhone because of OS version issues like I did with my Androids (even on "premium" Android devices that were still being sold at full price from a certain cell carrier who claims to have more users than any other network). Flap your gums all you like but I know the truth on this matter.

  5. Re:There's fragmentation on iOS too... by BitZtream · · Score: 4, Informative

    As more and more devices of varying features and sizes have been released by Apple

    Yea, its totally the same, there are a handful of different iOS device sizes ... compared to well over 100 that I'm aware of for android during the same period of time.

    It hasn't been until recently that Apple has given developers the tools to create views that don't need to know the specifics of the device it's running on, thereby avoiding silly checks like
    if(device == IPHONE) {....} else if(device == IPAD) {....}

    I've been a developer since the day you could sign up ... if you have checks like that for view size, you're doing it wrong. Apple has provided tools since day one to do so when it comes to size, like just using the proper NIB/XIB, hell the project wizard does it on project creation if you tell it your creating a universal app.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager