iOS vs. Android — Mobile Dev Platform Heads Up
Originally published at www.clingmarks.com on Aug. 11th, 2011.
We released the first version of “Penguin Links” game on Android Market (called “Pair Up” there) on March 2009. And then the iPhone version on June 2010. In the past two and half years, we had released many upgrades; and our games had their own up and downs. Being on both development platforms for a long time, I think it will be interesting to compare these two mobile platforms head-to-head. And here it is.
1. Development Environment
Before I started iOS programming, I was a long time Java programmer. I was used to some awesome programming IDEs such as IntelliJ IDEA, Eclipse, or NetBeans. My personal favorite is IntelliJ. I like it not only because it has a rich feature set, but also the consideration they have put in for those features. The seamless integration with maven/ant, color coded file names, highlighted changed lines, quick and easy refactoring … Nowadays, number of features is not enough to distinguish an IDE from others, it’s those little “productivity features” that make an IDE outstanding.
That’s why the first time when I started using Xcode 3.x, I was so surprised how outdated it was. It’s like programming in year 2000 on Visual C++ 6.0. No kidding! It does have all the necessary features — it compiles, it edits, it has source control integrated, it can even do refactoring. But all those “productivity features” are not there! You have to go down several levels of menu to do a “svn add”; and the worst part is, you can’t tell if the file is added or not after you clicking that menu! The refactoring often changes the wrong files. It’s hard to find a file. … Even after more than a year working on Xcode, I still felt so happy/relaxed whenever I was back to Java/IntelliJ — because everything I need is just right next to my hand!
Comparing with Xcode 3.x, Xcode 4 is definitely a big progress towards the right direction. I can see more signs from a modern IDE there. More convenience features are added. But as a whole, it still lags behind other modern Java IDEs. I also learned that JetBrains, the company makes IntelliJ IDEA, is creating an IDE for iPhone programming, called AppCode. I am so glad they are doing that — at least they can introduce some competitions to this area.
But on the other hand, I do appreciate Apple giving the whole development package to developers for FREE (thank god they don’t charge us for thousands of dollars like Microsoft charges for Visual Studio) — except the $100 membership fee I have to pay. Many of the tools included in the package, such as Interface Builder, Instruments, are so powerful that their equivalents on Java side can easily cost hundreds or even thousands of dollars. On this part, iOS developers are lucky to have this great all-in-one package.
It’s a close call to decide who wins this category. Java IDEs are better, but Apple does provide better supplement tools and it is catching up quickly on IDE. So I’ll leave this decision for you. Leave a comment and let me know what you think on this topic.
2. App Store vs. Android Market
Since I started programming on iOS, I have watched the amazing growth of the apps on App Store. The invention of “App Store” is a huge benefit for everybody — developers now can list their software on a central place, accessible by hundreds of millions of people all over the world; and consumers can get some top notch games/applications with just 99 cents, which is unimaginable before the App Store era. Apple’s vision and implementation on App Store is probably one of the most important contributions to the consumer software industry.
Google also launched its Android Market soon after iOS App Store, and the number of Android apps have grown rapidly since then. But in many ways, Google’s Android Market is still behind iOS App Store.
One big problem for Android Market is its lack of functionalities. One example is its lack of ways to promote new apps to Android Market. On iOS App Store, a new app could get on many special categories to attract users’ attention, such as “New and Noteworthy”, “What’s Hot”, “Staff Favorites”, … They may not really mean much, but they do provide extra ways for those better new apps to stand out. And if those apps are good enough, they will prevail. But on Android Market, once an app is released, the only way it could be noticed is through “Newly Released” category. With thousands and even tens of thousands new apps released for each category every day, you new app will soon be flooded to nowhere, no matter its quality is good or bad.
So, in this category, Apple is the clear winner!
3. Supporting Infrastructure
When I am talking about “Supporting Infrastructure”, I mean those processes/softwares behind App Store/Android Market, or iTunesConnect/Publisher Console, and those servers running 24×7 to keep the site up, and data up-to-date. You can’t see them, but you can feel it whenever you make a change to your app, either a new release or just a description update. They are the ultra-power behind the scene.
About a month ago, I released my “PenguinLinks 2″ games to App Store. It was an awful experience. At first, my free game went out, but the two “In-app Purchases” associated with it didn’t went out until two weeks later. And then, after my paid version was out, I decided to run a free promotion on a weekend. Unfortunately that’s the weekend when Apple rolled out App Store to 33 more countries. The price change didn’t take effect until Sunday morning. And the worst part is, it briefly went free for an hour, and then was completely rolled back. Clearly there were some glitches in the release process. But it was a disaster to me: when I saw the price changed the first time, I thought that was it; so I sent out all my promotion emails to many websites / friends. An hour later, I got tons of emails complaining it was NOT free.
I don’t really blame Apple on this. I was a backend developer, I know things can go wrong sometime. However, from these incidences, you can tell Apple’s backend infrastructure supporting App Store and iTC is really outdated. Just think about it, how often do you see other major websites going down for hours just for maintenance? And how slow iTunes is comparing with other websites?
Actually, many things we take as granted nowadays are still not available on App Store. When a user submit a review for your app, it is available immediately on Android Market; but it takes hours to show up on App Store. At Android Market’s publisher console, you can see sales in realtime; but on App Store, sometime you don’t even have an aggregated sales report one day later. I don’t even compare iAd report to Google’s adsense report — there is no comparison.
It may not be fair to compare Apple to Google on this category. After all, Google is probably one of the most capable technology companies (if not “the” company) at processing large volume of data quickly and effectively. Years of experience on search and data mining make it easy for Google to handle those data from Android Market. But for Apple, this is a whole new area. Apple must know this as well. They are building new data centers and hiring data processing experts. I have no doubt they will get better and better, but for now, Google wins this round.
So, which mobile platform is better? Well, as you can see, it’s a really close call. I would rather leave that to you. I actually like this because competition is always good, isn’t it?