Tuesday, July 15, 2008

iPhone and Android

The iPhone 2.0 has been out for a second day and so is the new set of the 3rd party applications. 
I tested a few of them, but I will mention about that later...

First, I want to thank Google for creating Android. 

Because of Android we have iPhone SDK, even if this is not 100% true, at least the prospect of thousands of Android developers made it easier for Apple to release it.  
We also now have iPhones that are half the original price ($199) - probably to win the public before public learns that there is a real competition out there. 
Most of all the intense competition will force both sides to strive for better solutions, and both of the sides win (sorry Winblows Mobile, Palm OS, CrackBerry you don't count anymore).

Why Android?

1) Java API - that fact alone wins Android for me, and thousands others, Apple really mess me up with Objective-C. Hear me out Apple: Java API, and if you want a clean, modern, dynamic language, use Groovy for JVM.
2) Linux core for stability and ability to run on multiple platforms (personally I love OS X UNIX core)
3) great user interface; mostly rip off from iPhone, but I cannot blame them -- there is nothing better out there.

I have a feeling that in some unexpected way there will be a bridge between the two, most likely Android Java apps running on top of iPhone (Java VM coming to the phone near you very soon).

Now, back to iPhone 2.0.

Steve Jobs is a very smart guy (OK, that is a severe understatement). He wanted to control three things, of which he mentioned only two: the quality of hardware and software.
Since Android will not control the hardware quality (open source), I expect that it will be hit-or-miss, some good, some bad. Just like Linux. I hope the big handset manufacturers (Nokia) offset the bad ones.
This brings me to the second control point, the software. The software from Apple is amazing, I had Treo before (Palm OS yuck!). 
As I said before I downloaded a 3rd party AIM chat application, one of the most downloaded today and it crashes for most users!!! 
This is precisely why Steve Jobs wanted iPhone to have Apple apps only, for the initial launch, smart guy. Android will have no control on quality of the apps, but hopefully they will get the market share.

Then there is the 3rd thing that Steve Jobs wants to control. Money. Almost every piece of good software written for iPhone (except for jailbreak.app) makes money for Apple directly (30% of the cost) or indirectly (iTunes traffic). Google may make more advertising money, but there is no money for them in Android, it is open source, so people can write and install their apps without asking Google, or anybody else.

I think it is worthwhile for us Java developers to learn Android, meanwhile I hope this article is formatted well on your iPhone.