The open-ended nature of Android development fosters great opportunities, but it also brings its share of headaches. Here are 10 problems you'll face -- and some ways to deal with them.
Developers across the mobile space struggle to produce intuitive, beautiful apps for the Android platform. Their challenges spring from the plethora of devices available on Google's operating system, as well as inconsistent operating system upgrades. Google's arguably too-democratic vision for mobile development can also be a source of problems. Here's a list of reasons why Android is often the bane of an app developer's existence. Of course, given Android's large and rapidly expanding customer base, figuring out how to develop a great app on Android is a must. Therefore, I also provide some effective workarounds for developers coping with the limitations of the Android platform.
Note: This post was first published in TechRepublic's 10 Things blog on August 10, 2011.
1: Software fragmentation
Simply put, there are too many versions of the Android operating system in circulation. This means that developers can't just focus on the most recent versions of the OS; not everyone has upgraded. It's not easy for users to upgrade their operating systems, and carriers have little incentive to do so. For example, we bought an Android phone in February 2011 that came equipped with Android 2.1. Version 2.2 had been released way back in July of 2010!Workaround: Learn which operating systems are most popular and develop with the latest widely adopted version in mind. Get to know handsets that are popular among your customers and familiarize yourself with the carriers' upgrade schedules. Another alternative is the lowest common denominator approach: Don't make an app that won't work on the oldest OS that's still in wide circulation.
2: Hardware fragmentation
Developing for the iPhone is easy from the hardware perspective. There are currently only five devices running iOS. By contrast, there are at least 170 running Android, with widely varying features, from keyboards (or lack thereof) to cameras to buttons, plus different screen shapes and sizes. It's a development nightmare.Workaround: Again, market research. Find out which handsets are most popular with your target audience and develop for those first. Expand from there if and when possible.
3: Lack of software/hardware integration
Button A on Handset 1 does Function X. The problem? Button A on Handset 2 does Function Y. Here's a look at the variety of button configurations. Whoa. So obviously, you can't design an app that relies on Button A to do the same thing for everyone. Users may grow frustrated and give up on an app that doesn't perform intuitively.Workaround: Once you understand which phones your users prefer and how they use features like touchscreens and keyboards, you can start designing an app that (hopefully) operates intuitively for most of your users. Focus groups or crowdsourcing through social media are two good ways to gather this information, but you will also want to play around with many different Android handsets yourself to get a feel for the user experience.
4: Too many carriers making too many changes to the core OS
Unlike Apple, whose devices are available only on two carriers in the U.S., Android phones are carried by all U.S. cell phone companies. And while Apple is strict when it comes to controlling the features of its phones, Android's carriers have leeway to modify the OS for their purposes, adding, subtracting, and modifying features and libraries at will. This compounds fragmentation problems.Workaround: Find out which carriers your users gravitate toward and work with their specifications first. At the moment, Verizon and Sprint have the lead, but be sure to keep an eye on the market and shift your development resources accordingly.
5: Google's lack of authority
Google has taken a deliberately hands-off stance when it comes to the Android OS. Open source code provides a low barrier to entry for app developers, which can be a blessing and a curse. A lot of developers (myself included) would like to see Google police the ecosystem better, implementing more rigorous standards and an app review process. If Android provided more universal UI guidelines (and components) like Apple's, we might see better apps as a result.Workaround: The good news is that Google seems to be moving in the right direction with the upcoming OS update. It claims that the new version will make it easier to produce attractive, user-friendly apps for Android. We'll see.
6: Security issues
Lack of governance in the Android market has led to a proliferation of malware programs that can masquerade as trusted apps. The openness of Android has made it susceptible to attack. To make matters worse, unlike traditional open source software, fragmentation on Android makes it difficult to roll out fixes, so many devices remain vulnerable. It's hard to keep customers happy and retain trust when security problems can't be fixed quickly.Workaround: Monitor your apps for security issues and stay tuned to the happenings in the platform. When security problems do arise, have a plan to ensure that your users understand the scope of the problem and the extent to which it affects your application.
7: Market research cost
As mentioned, understanding your customer is the key to getting an Android app right. This, of course, requires lots of research into how customers use the software and hardware on their phones. And, yes, that takes time and can therefore be an expensive endeavor for developers to undertake.Workaround: If you're committed to developing on Android, just dig in. Google does provide some user statistics that can get you started. But the best thing you can do is to use focus groups and customer surveys to understand your user base's behaviors and then allocate development resources appropriately.
8: Patent issues
In light of the recent lawsuits, there is a possibility that certain Android features could be declared in violation of patent law. Manufacturers might also be forced to pay licensing fees. If this happens, it could have a huge impact on the Android platform. It's impossible to guess now how it will turn out, but this litigation is enough to make some people nervous about dedicating development manpower to Android.Workaround: There's nothing to be done about this now, but mobile app companies would be wise to stay abreast of this litigation and make development decisions accordingly. Google seems to be taking a strong stance against the patent litigation, so there's good reason to believe they won't just roll over on the platform.
9: iPad domination
As of now, Apple's iPad has effectively cornered the market on tablets. That isn't to say that we never will see a strong competitor (or many), but it doesn't exist yet. For a lot of developers, it's just not worth developing for the Android tablet platform yet.Workaround: For now, just keep an eye on the tablet market. When a strong alternative with a competitive price tag does find its way to market (and they're getting closer), you will want to be ready to develop on it. You should also consider rich, HTML5-based Web apps that work well on tablets until you can develop native apps for Android.
10: The Android Market search engine
The irony is painful. Google's Android marketplace just isn't very searchable. In some cases, even searching for an app by its exact title won't bring it up. There are a lot of apps in the marketplace, and it's hard to be sure yours will be found. The marketplace also doesn't have a recommendation function, forcing customers to choose between apps without any reliable method for separating the wheat from the chaff.Workaround: The best thing you can do is to understand how the app marketplace works and use search engine optimization techniques that take this into account. For example, while the Apple store seems to favor titles when returning searches, the Android store favors app descriptions. It may also be worth looking into secondary app marketplaces like Evernote's Trunk. This can be a great way to drive potential customers to your app and to increase the likelihood of being found within the Android marketplace.
Of course, it's worth noting that there are some really cool aspects of developing for Android. The open source nature of the Google operating system means developers have a good amount of leeway, for better or worse. Creative developers with good ideas may find that they can pioneer more interesting apps than they could on the closed iOS. Google also doesn't police apps entering its marketplace, so getting in is as simple as submission. If you can develop an Android app that works intuitively, looks great, and can be found in the marketplace, you stand a strong chance of capitalizing on this strong and growing market.
Anand Rajaram is the cofounder and chief product officer for OfficeDrop, a digital filing cabinet with scan-to-cloud apps for Mac, PC, iPhone, iPad, and Android. Anand has extensive experience developing Web/mobile apps and playing Angry Birds. Shockingly, he prefers iOS.