When Android first debuted on the scene almost seven years ago, the open-source framework planted the seeds of diversity. That diversity allowed Android to grow into the premier mobile platform, taking more than 80% of the current market share in that category. It also opened up the ongoing debate about fragmentation across devices. With the Android Wear developer preview rolling out and Android TV coming down the pipe, it’s not likely to go away anytime soon.
For an Android developer starting out, the thought of fragmentation can be frightening. It doesn’t help that many of the opinions on the topic are, well, fragmented. Let’s try to put the pieces together.
In an effort to compete with the iPhone, Google’s Android was made open source. Over the years, a large number of developers and manufacturers, each with their own preferences and specifications, created unique variants of apps and phones. Screen size, resolution, battery life and brightness changed from model to model. In 2013, the number of unique devices running Android grew to 11,868, a 300% percent increase from the 3,997 unique devices found in 2012, reported OpenSignal, a company that provides mobile visualizations and analysis.
To Chiu-Ki Chan, developer of Monkey Write (an app for learning how to write Chinese), this is nothing new. “Desktops and laptops have a great variety of configurations as well, not to mention the differences in various browsers, so it is just as fragmented, if not more,” she said. “Web developers are doing just fine, and I don’t see why Android should be any different.
“The most important thing is to think relatively. When you see a design, try to unveil the underlying logic,” she added.
Operating system diversity
Depending on the source, anywhere from 12% to 20% of Android phones in use can still be running Gingerbread (Android 2.3-2.3.7), which got its last update in September 2011. Nick Bradbury, developer of Glassboard (a group communication app with an emphasis on privacy), noticed “there are still plenty of cheap Gingerbread phones for sale,” and that “many manufacturers didn’t see much benefit in providing platform upgrades.”
In his blog post “Android’s Overblown Fragmentation Problem Revisited,” Bradbury cited the OS disparity as a bigger issue than the amount of devices.
The wide world of wearables
Earlier this year, Google launched its Google Glass Explorer program, and a few months later it was already on to Android Wear. One change that can’t be ignored is the circular layout, which will require a different layout philosophy for UI designers and different design guidelines for developers. Apps are not “full-fledged” and will focus on notifications instead.
Software consultant Jim Wilson thinks wearables are the future, will be the new new approach for designing for them. “It’s amazing how differently you have to think about solving the problem of making a good design,” he said. “The real shift is that we’re moving from the app being the focus to what you’re doing being the focus. The app is just an assistant.”
Google picks up some of the pieces
Google wants to curb the fragmentation problem. It is combating the OS disparity by not approving devices will ship with anything older than KitKat version 4.4. Along with that, they are requiring the use of a “Powered by Android” logo, or access will be denied to official Google apps, including the Google Play Store and Gmail.
“Google will let open-source reign where it benefits their interests,” said Bradbury. “It would be hard to argue that Android will become homogenized given the myriad of devices on the horizon, but I do see Google continuing to move critical pieces into their own APIs.”
And with Google’s Project Ara (its modular smartphone project) coming down the pike, it will be interesting to see how Google will handle the fragmentation issue.
Device-independent pixels are the same size no matter the device, and there are 160 device independent pixels no matter what the device resolution is. “It allows you to define your UI in terms of ratios, so everything adapts automatically,” Wilson said. “With DIPs and fragments to manage more-difficult scenarios, you can solve most layout issues.”
Fragments allow for the reuse of components based on available screen space. This way, a developer can enable the appropriate layout for the appropriate device.
Android also has a utility called dynamic resource selection. As Wilson pointed out: “In Android, one can provide different layout descriptions in resource files. The directories containing those files follow a prescribed naming format that associates the resource files with different device characteristics.” When you run your app, Android will then automatically select the correct resources for the current device characteristics. To see how this works, watch Chan’s video: “Bust the Android Fragmentation Myth.”
No matter how it’s looked at, the Android ecosystem is diverse and growing every day. Knowing what devices potential customers are using can make or break an app’s success, and resources like “Android Developer Survival Guide, Part I: Know Your Audience” or AnDevCon Hangout “Android Wear and Android Fragmentation” can help any Android developer look before they leap. It’s just a matter of putting the pieces together.