Main image of article Is Android Fragmentation a Justified Dev Fear?
The dreaded term “fragmentation” has been applied to Android more times than anyone can count over the past half-decade. Apple’s iPhone and iPad present developers with a limited number of devices and screen sizes, with most users running the latest major version of the operating system thanks to Apple’s total control over software updates. Android, meanwhile, asks developers to build applications that work on thousands of devices with different screen sizes and hardware configurations, with carriers and different handset manufacturers controlling software updates, and very few customers running the latest version. Check out the latest app-developer jobs. That’s part of the reason why developers often build for iOS before Android and make more money from iPhone and iPad users. Yet Android offers a bigger potential customer base worldwide, and more types of gaming experiences. With Android-based consoles such as Ouya and dedicated gaming tablets along the lines of Nvidia’s Shield (which works with a physical controller in addition to a touch screen), Android is not restricted to just phones and touch-only tablets. The complexity of the Android ecosystem goes hand-in-hand with its opportunities, and developers are wise to find ways to go after both iOS and Android users. Ville-Veikko Helppi, a technical product manager, doesn’t believe it’s harder to develop for Android than for iOS. In fact, he thinks developing for Android is easier because “there’s less control from Google than you get from Apple.” But it is harder to test on Android devices because there are so many of them; that’s one big reason his employer, Helsinki-based Bitbar, built a product called “Testdroid.” “I come from the Android world,” Helppi told Dice, explaining that he’s a big fan of Google’s mobile operating system. “Google is doing a fantastic job fighting the fragmentation.” But OEMs introduce all sorts of problems by putting their own software on devices and preventing users from getting the latest Android versions, he added. Although game development engines such as Unity3D make it easy to build games that can run on multiple operating systems and devices, it’s still important to do lots of testing. “The real fragmentation comes from OEMs,” Helppi said. “There's tens of OEMs, hundreds of phones coming every year, and thousands of Android devices out there. Getting your app or game running properly on all of those has been and still is a big headache.” Testdroid lets developers use scripts that test apps and games on hundreds of devices over the Internet. These are not virtual machines; they’re actual hardware devices running in Bitbar’s cloud platform. Bitbar doesn’t have just one version of each device. For example, “I think we have like 17 different variants of [the Samsung Galaxy S5], meaning the carrier- or operator-specific devices and their updated versions,” Helppi said. (Testdroid also hosts iOS devices.) Testdroid keeps up with all the OEM updates because they might introduce problems, including background processes that slow down whatever application a user is trying to focus on. Or as Helppi put it: “Again and again OEMs push upgrades for the OS and their stuff and suddenly even regular applications are sluggish, barely usable.” Carrier customizations aren’t too different from the bloatware that PC makers add to Windows computers. But it can be even worse than the Windows world because users have to rely on service providers—rather than Google—to issue updates to the core Android operating system. Google is trying to solve this with its Nexus line of devices, which offer quicker updates and a purer Android experience. Google has also placed additional core Android functionality into Google Play Services, which can be updated through the app storefront even if users are stuck on an older version of Android, making the problem of Android forks a bit less severe. (However, this can also be a negative for companies that use the open-source Android without licensing the core Google services, as Amazon does for its Fire lineup of devices.) Google Play Services enables some game-specific features, such as achievements, leaderboards, and real-time multiplayer. But there can still be new features, specific to the core Android operating system, which users won’t receive if their carriers don’t provide updates. Less than 2 percent of Android devices are running the latest major version of the software, Android 5 “Lollipop.” “Lollipop introduced lots of new APIs [application programming interfaces] and features, material design,” Helppi said. But it might take six months or so for many users to get the new features. “If you build a game only for the latest and greatest version” and rely on APIs that aren’t available in older versions of Android, “then it's not backwards compatible with the older ones.” That’s just one more reason why extensive testing is important. Google says that developers "can use Android 5.0 APIs while also supporting older versions by adding conditions to your code that check for the system API level before executing" newer versions. In addition, "[I]f you have previously published an app for Android, be aware that your app might be affected by changes in Android 5.0."

'Google Keeps Breaking Our Apps'

Although Testdroid provides easy access to lots of remote devices, there’s no substitute for hands-on testing. That’s why London-based indie developer Tom Vian, who teamed up with his brother to make Haunt the House: Terrortown and Detective Grimoire for both iOS and Android, keeps a stable of different phones and tablets on hand. Vian released his games on both iOS and Android simultaneously after testing them on a few core devices for each operating system. “I have an original Kindle Fire, first generation, that’s my sort of ‘If it’s just about playable on this, then it will probably run on anything’ device because it’s really, really low spec, it’s quite an old device now,” Vian told Dice. Vian makes his games in Adobe Air, and wrote his own scripts that scale games up and down to different screen sizes and ratios. He knows many developers build for iOS first and release on Android later, but that isn’t his strategy. “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,” he said. “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.” Vian has faced compatibility problems on both iOS and Android. He had to rush out a fix for Detective Grimoire on iOS after it launched because the code he wrote didn’t scale correctly on Apple’s high-resolution Retina iPad screens. Vian hadn’t been able to afford a Retina device to test on before the game came out; iPads are more expensive in the U.K. than in the U.S., he explained. But the challenges on Android have been more severe. “It has its own unique problems and Google is one of them,” Vian said. “They keep breaking our apps.” Android 5.0 broke Adobe Air apps, forcing developers to wait for Google and Adobe to roll out a fix. “It becomes a nightmare to try to explain to users that you basically put a lump of memory into their phone.” About a year ago, another problem in an earlier version of Android made it impossible for users to access files needed to play games. Google limits applications to 50MB but allows developers to upload “expansion files” that add up to another 4GB. One Android update rendered the data in these expansion files useless, Vian said: “It wasn’t just Adobe Air, it was any game that used that [expansion file] system. It just wouldn’t run because it couldn’t get its assets.” It took months to resolve the problem, and users needed to update the device in order to get the fix. Despite those challenges, Vian’s games have done well on Android. He’s made more money from Apple users than Android ones, but that’s primarily because Apple featured Haunt the House for a couple of weeks after its release last year. That spurt led to 60,000 sales to iOS users in a couple of weeks. Since then, sales have been about equal on the two operating systems, selling about 50 to 60 copies a day on each app store. While fragmentation is real, it isn’t an insurmountable roadblock. According to Vian, any relatively modern Android device should run his games “quite comfortably,” as they don’t include any “crazy physics” or advanced animations. Even Android devices with physical controllers, such as Nvidia’s Shield, can run Vian’s games. Detective Grimoire and Haunt the House: Terrortown are available on both desktops and mobile devices, so porting gamepad controls to Android didn’t take Vian a huge amount of time. Despite its occasional complications, it seems clear that developing for Android is a challenge that’s worth tackling.

Upload Your ResumeEmployers want candidates like you. Upload your resume. Show them you're awesome.

 Image: "Haunt the House: Terrortown," Tom Vian