I haven't done any Android development, but have done some iPhone
stuff. (The 2008 Apple Design Award for Best Healthcare & Fitness
Application is sitting on my desk. If that's not a big enough hint,
I'm not sure what you'd need. :) ) It's quite pleasant to program for,
and you can get a lot done in a short while - and it's pretty easy to
integrate with a Java backend. Initially, when we started developing
our app, we had wished for the ability to use Java, but it was quite
easy to pick up. ObjC was a bit weird at first, but after spending 5-6
weeks with it, it's grown on me. The collections APIs are kind of
strange, and I find myself missing generics, but on the other hand,
the dynamic features are extremely nice as well. And the ability to go
down to low-level bit manipulation was necessary several times, in
order to get the performance needed, something which I'm not sure
would be possible with Android.
We've had a small but significant number of people ask us about
offering our application on RIM or Windows Mobile. The answer we've
given has basically been, "No, but thanks for asking." If we do
support another platform, it will almost certainly be Android.
However, seeing the customer base does not yet exist, it doesn't
really make sense to start developing for it yet. What Apple did makes
a great deal of sense. They didn't come out with the SDK while the
platform was brand new, but rather waited until they had a good
customer base, and people went nuts for the SDK.
One other thing is very good about the iPhone, from our perspective -
there are currently only 3 flavors of the platform (iPhone, iPhone 3G,
and iPod Touch). It's pretty much known what the capabilities are,
whereas with Android, who knows? Our application definitely pushes the
limits of what you can currently do on a phone, and having a very
capable minimum device is good for us.
Another question I have about Android is I'm not sure exactly what
Google's incentive is here. They don't make the hardware, and the
software is free (GPL, I think?). What is there to ensure that they
support it for the long term?
Another thing that is in Apple's favor is that they have provided a
mechanism for worldwide distribution of iPhone apps. They may take 30%
of the purchase price, but I tend to think that's worth it, as I'm
sure all those servers aren't cheap, and they are paying the credit
card fees, etc. I would imagine Apple gets a much better deal from the
credit card companies than most people can get, since they do *so
much* volume. I'm not sure how distribution of Android apps will work,
but my guess is that it won't be as straightforward as what Apple has
provided.
I'd love to be proven wrong about Android. Being able to use our
existing code in a mobile app would quite nice. On the other hand, I
love my iPhone, too. :)