Tuesday, March 23, 2010

Mobile App Development: iPhone vs. Android: Books, Blackjack, and Tap Fish!

It’s been a while since I last posted. So what have I been up to?

Mobile, Mobile, Mobile

I've been doing mobile game development using our offshore team for both Apple and Google platforms (iPhone / iPod vs. Android) – and this entry is about what I’ve learned during that process.


Android vs. iPhone Gaming, Round 1: Quality and User Experience

In general, game developers have flocked to the iPhone/iPod in big numbers (there are 140K apps in the appstore and my guesis is that 70% of those are games), but not as many to the Android platform. Why not?

My own informal opinion is that to date, games on android have been less polished in all respects – the graphics and animation and gameplay. Historically, part of the reason for this was the horsepower of the phones themselves, though with Motorola’s Droid phone and Google's Nexus One, the physical hardware and OS has started to catch up to the iPhone. But it takes time to develop software, so it may be a while before a large number of android games “catch up" in quality and user experience to the iPhone.

We released two android games, Bay Blackjack, and Bay Connect 3-4-5, earlier this year (they’re live on the android market now - download them if you have an android phone!).

Our goal with these two games was to try to make android games that “looked” as good and played as well as iPhone games. Did we succeed? I think so. On the Motorola Droid phone, which I have in addition to my iPhone, these two games play as well as any iPhone versions.

So on Quality and User Experience, who wins? The iphone still provides a better game play environment, and with the upcoming iPad this gap may widen. However, as software developers eventually upgrade their android games, it’s possible in a year or more that the average android game will be as “good as” the average iPhone game.


Google vs. Apple, Round 2: Monetization and User Acquisition?

How about on the monetization and user acquisition front?

These are pretty important to developers; that's how we decide where to spend our time and money, which is what results in quality games in the end.

On android, these are still big issues: How do you advertise your apps, and how do you make money from your apps? Right now, it’s still just a paid/free application model – but the pre-requisite to making money (whether that money is from paid apps or advertising or virtual good sales) is to get LOTS of users.

Our Blackjack game has gotten more than 10K users in its first month. While that’s not bad, those are very small numbers when it comes to the iphone.

We released Tap Fish on the iphone in March. It has been a big success – one of the top games in March - within a week of launch, we were the #2 free app in the entire iTunes app store (that's right, #2 most downloaded out of 140,000 apps).

In contrast with android, though, you need something like 10K+ downloads per day to reach the top 25 list in the appstore.

Like other developers, since there is no built in monetization for our android games, we have been unwilling to spend a lot of money on distribution. For Tap Fish, we use Tapjoy (a company that I invested in) for both distribution and monetization, and use apple’s paid models to augment this revenue stream. Tapjoy is just releasing their SDK for android so this may spicen things up a bit.

Who wins Round 2? The iPhone eco-system for making money is much further along than android, by a long shot.


Round 3, Android Market vs. Apple iTunes App Store: Development and Deployment

You would think that this is easy win for apple – the iTunes app store has more than a hundred thousand apps already, with billions of downloads.

Not so fast, though. It turns out that development for Android is a lot easier than development for the iphone. With Android you usually write code in java, and there are millions of java developers who can be trained to write android apps pretty quickly.

Apple, on the other hand, uses Objective C, which was a very progressive language when it came out in the 1990’s – Steve Jobs and his buddies at NeXT computer laid the foundations for it long ago. I remember seeing demos of this in 1992 when I was still at MIT.

Back then, Steve Jobs' development language was cool and hip and new. Today it’s pretty arcane – you still have to do lots of memory management, syntax is unlike most other languages, and what goes for visual programming (again it was cool in 1992) seems kind of ancient now. Ever heard of Visual Basic?

Plus, there are only about 20 developers in the whole world who have more than 1 year experience with Objective C (LOL – just kidding about that number – actually we probably have 20 developers in our Pakistan operation alone who now have very good iPhone experience). Still, good C programmers (which Objective C is kinda sorta based on) are hard to find and the number of C/C++ developers has been in decline since about 1997. Since most universities (including MIT) switched to using java almost 10 years ago, good java programmers are not hard to find (though of course, good programmers can be, no matter what language you're using).

Round 3, part-1 for development, the winner is... Android, by a long shot!

How about Deployment and testing?

Android apps are very easy to deploy – you just get apk file and put it onto your device. That’s it. After struggling with apple’s very confusing and dare I say it, BrainDead approach to distribution of apps during development (using things called provisioning profiles and entitlements that even MIT engineers have a really hard time figuring out).

And that’s just for deploying to development/test devices. Don’t get me started on deploying to the App store which requires that Apple go through a review process. I know people whose applications were delayed by a month waiting for apple to review their apps and addressing apple’s multiple rejections.

That said, Apple has come a long way since the bad old days of waiting weeks for your app to be approved. For example, we came out with a new version of our Book Bazaar app - which now includes support for searching for books at local libraries (thanks OCLC) as well as local bookstores. It only took us 1 day (less than 24 hours) to get this update through apple’s review process – thank you Apple!

New apps can take up to 7 days - still a pain, but they're often approved in less than that, so good work apple! Nevertheless, the fact that i'm saying Apple has improved means that Round 3 still squarely goes to: Android!

Of course, if you are a mobile developer and you have any significant amount of sales, the lion’s share of it probably comes from the iPhone, so Google’s advantage in development and deployment may not mean much in terms of the market. The rule of thumb, as always, is: follow the money.


What about other platforms?

We have done a little bit on other mobile platforms - blackberry, palm, nokia, but not much compared to the "big two" mobile platforms.

Last week I attended the GDC (Game Developers Conference) in San Francisco, where the two hottest platforms to develop for were... Facebook and the iPhone.

Of course, Facebook still has many more users today than the iPhone, but it's so ... 2007 (ok, i know i'm going to get into trouble for calling Facebook a "legacy" platform" LOL!!). But that's kind of like saying that AOL had more users than the Internet in 1995. Of course it did, but not for long. When you count the growth in the number of smartphones out there, facebook on mobile may end up being more used than facebook on PC's and Macs soon enough.

It's very rare when you see computing shifting to a completely new hardware platform - it only happens once every 10 or 20 (or maybe even only every 30) years. The last time such a major shift happened was the introduction of PC's and Macs in the eighties. Even the arrival of the Web in the nineties (which was BIG with a capital B) didn't prompt a wholesale shift in physical hardware - it just prompted people to buy more PC's and Macs.

And that's why i'm all about: Mobile, Mobile, Mobile!

Labels: , , , , , , , ,


Read more!