Pages

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!

20 comments:

  1. jake_l@live.co.uk5:57 PM

    A very interesting post, thanks!

    ReplyDelete
  2. good to see this post.Keep posting
    bba

    ReplyDelete
  3. How do I get tap fish on my Nexus one (Droid)? I can't find it when I search "tap fish" or "tapfish" in the market place.
    Thanks!

    ReplyDelete
  4. Google was not interested in helping developers make money from their apps. They simply wanted a platform to control. So they made development on it as cool and collaborative as possible. The community of developers contributed a lot. On the other hand, Apple was serious about selling apps and making money from them. So they invested in the app distribution chain.

    ReplyDelete
  5. android phones10:22 AM

    Latest reviews and news about android phones, free droid app and android mobile

    ReplyDelete
  6. I don't event want to stop reading this blog!
    Very nice one..
    keep on going.....

    ReplyDelete
  7. beautifully written and so inspiring, i thought this was a really great post to read. i'll check back for new posts by you!

    ReplyDelete
  8. Hello,
    NIce blog i like it
    As more and more smart phone devices and tablet computers are coming in the market, the requirements for developing applications also increasing.

    Mobile applicationdevelopment

    ReplyDelete
  9. Awesome post!!!!! Great information about mobile application development. I like your writing.

    Mobile Application Development

    ReplyDelete
  10. Good topic to share. Today, everyone knows that this is the booming age for mobile application development market.

    ReplyDelete
  11. Very informative post. Thanks for sharing this information to us. Keep posting.

    ReplyDelete
  12. Thanks for the great post
    I found it very helpful

    ReplyDelete
  13. Hi Rizwan,

    I just wanted to mention a product that we recently released to facilitate cross-platform (really iphone and android) game development. It's something we initially developed internally for our own use but saw so much interest in it that we decided to polish it up for public use. It's called BatteryTech and it's not a game engine, but instead is a mobile development platform which handles all of the OS differences for you and lets you develop a 2D/3D game for both Android/iPhone using the same codebase (yay!). It's really meant for high-performance games, but could be used for social or anything else if a developer so desires.

    ReplyDelete
  14. Very worthwhile blog post. Your web property is swiftly starting to be among my top picks.

    iphone developer

    ReplyDelete
  15. Anonymous5:47 PM

    While Apple has maintained its position as the leading game development platform, Google's platform for the Android game development is quickly catching up. As you mention, the iPhone continues to provide the best game environment for users and developers. However, as software developers continue to upgrade their games, soon the Google platform will be a viable competitor for Apple.

    ReplyDelete
  16. Anonymous6:11 AM

    Innovative applications for the iPhone, iPad, Blackberry, and DROID are only the beginning. blackberry app designers
    ipad application design

    ReplyDelete
  17. Anonymous1:55 AM

    Thanks for sharing, I will bookmark and be back again

    Mobile Application Development

    ReplyDelete
  18. Very interesting post! As I have owned both the iPhone and the Android, I can say that the Android has definitely caught up to the Iphone with regards to the App development.Webmaster of Leap Frog Leap Pad

    ReplyDelete
  19. I like your Information detail.This is one of the simple post.I like your blog principle good.Android app developers

    ReplyDelete
  20. Took me time to apprehend all the comments, but I actually enjoyed the article. It accustomed to be absolute advantageous to me and I am constant to all the commenter's here! .

    Android developer

    ReplyDelete