Why an iPhone Developer Should Consider Android Development
by Nathan Peel / June 29, 2010
Google and its cadre of device manufacturers are doing an amazing job at establishing Android as a major smartphone platform. Google is improving the platform’s speed, and their free open source tools using an established programming language make the barrier for entry lower than developing for iOS. Most importantly Android is set to catch up with iOS device sales this year making Android’s market bigger and thus the pool of potential customers bigger.
The Ubiquity of Java
Building your app for Android might be easier than you think. For one, Android apps are built in Java which has become a ubiquitous language for server side web development, embedded systems programming and cross platform application building on the desktop. Most developers have done a bit of Java if they learned to program at college. If you aren’t familiar with Java you can pick it up fairly quickly if you are familiar with Object Oriented principles. In the case that you need a resource to port your app, there are many Java developers that may be lured into mobile development. Additionally, the APIs are well documented on Android and there is a growing corpus of material for beginners. From a technical perspective Android devices support the same media formats as iPhone, and OpenGL if you happen need realtime 3d rendering.
A More Open Place to Sell Your App
The Android Marketplace has fewer restrictions than Apple’s App store. There are still rules but you won’t find anything remotely like the App Store EULA that has sent waves through the industry and turned many potential developers off to the idea of making an app for iOS.
If you want to use a 3rd party library, you may, as long as the license for that library permits you to include it in your app. You can use 3rd party tools to help you build your application. This is something of a gray area now with the Apple App Store. I’ve heard that Apple is mainly targeting Adobe with this move but I don’t see how they could selectively enforce it and not have a lawsuit on their hands.
Additionally, with Android, you aren’t tied down as to the type or amount of analytics you can collect in your app. Apple has introduced a few extra guidelines in the name of making privacy a bit more transparent. This is probably good but it restricts the kind of data you can get, and if the user declines to send you data you will receive no stats about their usage.
Android’s Market Catch-Up
Perhaps the newest reason to develop for Android is market share. Within the last 6 months Android sales have taken off. Credit Google for continuing fast-paced development of the OS. Credit Motorola and Verizon for pimping the Droid. Take into account the extra carriers that carry Android devices, the extra manufacturers making Android devices and those factors are obviously at play as well. The biggest reason to develop apps for Android over the next year is market share. The Android market is growing faster than iOS.
Drawbacks
Having presented the case for porting an app to Android there are still plenty of caveats. Currently the Android marketplace has more piracy than the iPhone market. I’ve heard this is because its easy to ask for refunds on app purchases and you can restore the returned app from a backup.
Another gotcha for developers is market fragmentation. Google has done a good job of making the Android OS open and documented. This doesn’t mean that the carriers or device manufacturers aren’t muddying things up with their poor implementation or customizations. Large portions of the market haven’t updated from version 1.5 of the OS. The latest stable available from most manufacturers is 2.1. If you are lucky enough to have a Nexus One, blessed with Google’s right hand, you can run Froyo (2.2) and get all of the latest features and speed improvements.
Fragmentation is a legitimate reason to not develop on Android. If you are making a game or some other significantly complex application the extra effort to get it to run on multiple devices could be too costly. Several articles have been written about Android’s market fragmentation recently and the most alarming thing is that Google seems lax about dealing with the problem. For now its up to app developers to handle poor implementations of Android on certain devices. Maintaining many branches of code for compatibility’s sake can be debilitating for one man shows or small development teams. Especially if these developers are looking to maintain their product on 2 different platforms. This is a problem that involves multiple actors to resolve. Handset manufacturers are tasked with releasing the updates, but the carriers have their hand in it too. The end result is endlessly delayed updates, or potentially being orphaned with an old version of Android if the manufacturer/carrier decide to get lazy.
Another problem with Android was speed. Java has a reputation of being slow, too slow to use for game development. Google improved performance for Android devices markedly with Android 2.2 aka Froyo. The new version includes a rebuilt JIT that executes much more efficiently. Performance is in some cases 2-5x faster than 2.1 according to Google. This is great news for developers that want to make games for Android, but yet again they have to consider market fragmentation and that the majority of Android devices are not going to run 2.2 for 6-12 months and many will never have the update.
Conclusion
Each developer will have to weigh the costs of developing for Android. There are a number of reasons to port your app to Android but the biggest reason is that the market is growing. There is less competition so its the perfect time to stake your place as a premier Android application.