7 Comments

Summary:

About the Android screen fragmentation issue that’s been bandied around for years: It’s a myth says one developer because Google has long ago introduced tools to let apps adjust icons and layouts based on screen size and pixel density.

For years we’ve heard horror stories about mobile app developers trying to support the many screen sizes found on Android. As the story goes, it’s a far more complicated scenario than developing for iOS since there’s only a handful of different screens on Apple devices. Or is it? According to one developer, who writes apps for both platforms, Android screen fragmentation is a myth.

Russel Ivanovic from Shifty Jelly, maker of the popular Pocket Casts app for iOS and Android, shared his thoughts on this perception in a blog post, starting with this infamous and daunting graphic from 2013 that illustrates the many screens supported by Android:

android screen sizes 2013

 

Simply looking at the graphic, it’s easy to believe that supporting Android has to be more difficult for this reason. Not so, says Ivanovic:

“It’s not that hard, and honestly causes us less headaches than most people imagine. Firstly, the tools Google give us to lay out interfaces have supported this from day one. You’ve been able to define one or more layouts that scale to various sizes, and if you want to get everything perfect, you can have as many of these layouts as you like, while still keeping the one codebase. The layouts are XML, and don’t live in your code. If you’re an iOS developer they are pretty much the equivalent of XIB files with size classes like iOS 8. The other part people don’t realise is that Android has standardised on screen resolutions for a long time now.”

Along with scaling layouts, Ivanovic said, developers can include higher resolution assets to be used as needed based on the screen size and pixel density of a device. To illustrate his points, he chose the top 10 Android phones that use Pocket Casts to see the basic interface layout differences among them. The range of screen resolutions for the 10 devices included:

  • 720 x 1280
  • 768 x 1280
  • 800 x 1280
  • 1080 x 1920
  • 1440 x 2560

After breaking all of these down to base layouts, Ivanovic said the true picture of different screens to develop for turns out to look far less complicated:

screen_res

Granted, this is solely for the 10 most popular phones for a single app. Ivanovic is ignoring tablets, which represent a fraction of Android devices when compared to phones. So the situation for other developers will surely vary.

But for Shifty Jelly, there doesn’t seem to be much of an Android screen fragmentation issue. In fact, it’s quite the opposite, as the company can now focus on more recent Android devices and still have a wider audience than for Apple device owners:

“For modern apps like ours though, which support Android 4.0 and above, the landscape is much nicer. That’s the beauty of Android’s massive market share, we can ignore all the people with phones running Android 2.3, those with odd and rare screen sizes, and target only 4.0 and above. The resulting group of people is comparable, if not bigger, than the users we target by being iOS 7 only in our iOS apps.”

To be sure, developers have to do more to support a wider range of devices when it comes to Android. However, the tools to do so are clearly available and now that only 14.2 percent of Android devices are running a version lower than Android 4.0, the screen fragmentation issue doesn’t seem so bad from Ivanovic’s point of view.

If you’re an Android developer, I’d love to hear if you agree with his experiences.

  1. I dont think the screen size is much of a challenge. The challenge is that android phones are mostly budget phones who don’t have the power to upgrade to a newer version. The challenge is making software that will work with all these devices that have all flavors of android.

    The flagship devices should be ok for a few months but eventually they will ask be unable to update but the thing is that companies will make you wait or even cut off updates to focus on the next flagship.

    Reply Share
    1. But unlike Apple, Android is getting more expansive not less: KitKat runs on devices with fewer resources than what would be required from Jelly Bean.

      This is a good article. I went into android dev thinking it would be more of a nuisance than it actually ended up being.

      Reply Share
  2. At Codename One we target all Android’s as well as iOS, Windows Phone etc. so this gives us a very deep perspective on fragmentation.
    Screen sizes are indeed a non-issue since Android (and Codename One) has tools to deal with that. Its a bit of a pain when you come from the iOS side of the fence since it does require more work/attention but its not a big deal and now that iOS has quite a few resolutions/orientations its actually harder there to some degree.

    There are real problems with Android fragmentation e.g.:
    1. Conceptual – iOS has iPad and iPhone. You can literally “ask” isIPad and get a result. Android doesn’t have that. So adapting to tablets means “is this a 7 inch device”.

    2. Esoteric – Android has API’s for dealing with density that relatively few people use. Some devices just don’t respect these API’s and their conformance kit doesn’t check them… We relied on them for years and got reports from some users that the UI didn’t “size correctly”. Finding that out was a pain. Some devices have issues with http headers, camera image processing etc.
    These edge cases are darn right impossible to track and reproduce. Unfortunately a few such users can really ruin your store ranking…

    3. Political – Kindles market is shrinking but there are still devices that aren’t Google Play devices. That’s a pain with push notification, purchase and many other features relying on the play store. Integrating Amazon is no big deal, but then you need to integrate Nokia too etc. This becomes an issue.

    Reply Share
  3. Sounds good in theory, but inevitably the QA and design time is exponentially higher than that of iOS when developing applications, particularly keeping an eye on those Android tablets. And if you’re using bitmaps, it’s a real headache keeping your assets crispy clean looking when they aren’t simply exact doubles in size like iOS.

    Reply Share
  4. Scott Sterling Friday, July 11, 2014

    It’s nice that Android provides tools to adjust icons and pixels etc for screen size. But is that really the point? I think the issue is that larger screens on Android are basically wasted space, since the content that was designed to work for a smaller screen remains the same, just spaced out.

    Reply Share
  5. I have never developed for iOS so can’t comment on the difference. But I have wondered at the quality of developers who complain about fragmentation on Android. My experience totally tallies with this developer. You don’t code for physical devices. You code to APIs. Using fragments, relative layouts, density independent pixels and 4 sets of resources for 4 buckets of resolution, you can create a single Apk that will work across phones and tablets (and now AndroidWear) *optimized* for all layouts – not just scaled! If you don’t use fragments, it will only be optimized for all phones. It really is not a big deal at all.

    Where you do have problems with fragments really is on the hardware side. If your app is heavily dependent on some sensors, then it may not work on all devices consistently. That’s a much more difficult situation. For the vast majority of apps though, it’s a non issue.

    Android does have fragmentation. But it’s not a developer problem. It’s an end user problem. It’s the inability of users to get OS updates in timely manner. And if that’s important, it’s better to stick with Nexus devices – and lately encouragingly, with Motorola devices.

    Reply Share
    1. »» Where you do have problems with fragments really is on the hardware side

      Typo. What I meant to say is problems with fragmentation not fragments which allows you to create optimized phone and tablet apps.

      Reply Share