The cutting edge apps will be developed for the iPhone first, and then ported to Android (if it's even possible).
Reasons behind my claim:
Device fragmentation: If an app makes heavy use of a built-in sensor (eg. accelerometer), it's much harder to test the app with all Android devices. Some of the Android devices might not even have the sensor, that the app uses, which will result in an angry customer. And angry customers are bad news, when you aim for word-of-mouth marketing.
Low-level coding: With the iPhone, it's possible to implement cpu intensive code blocks in assembly optimized for each generation iPhone, and thus optimize the code, so that you make the most of your resources. If I'm not mistaken Android only supports Java.
Device fragmentation: There's certainly fragmentation between generations of the iPhone, too. Gyroscope, front-facing camera (or any camera at all), different amounts of RAM, different processors, different screen sizes, etc. It's a problem that has to be dealt with on both platforms.
Don’t forget the iPod touch. I’m really annoyed whenever some app doesn’t check whether there is a camera and just displays a camera button, no matter what (prompting the standard “no camera” dialog).
If your app requires a particular hardware feature, you can list that in the app's manifest file, and it won't be installable (or even visible in the Market) on devices that don't have that hardware feature.
And the Android NDK lets you write native code for the stuff that needs it.
Fragmentation: iPad, iPhone 4, iPhone 3GS, iPhone 3G, iPod Touch 2G, iPod Touch... Each with different capabilities and hardware specs. I've shipped titles to the App Store where I had to tip toe through the minefield of all those permutations, making sure the app worked correctly and/or similarly on all. Sometimes pretty hard to do.
Android is more fragmented in a very fundamental way. If one ignores the iPad and just look at the phones they all have basically the same physical screen size. Android phones come I sizes from 2.5" 320x240 up to 5" 480x800. Designing a UI that works well at all those sizes is a challenge far beyond the more superficial differences of the iPhones.
Reasons behind my claim:
Device fragmentation: If an app makes heavy use of a built-in sensor (eg. accelerometer), it's much harder to test the app with all Android devices. Some of the Android devices might not even have the sensor, that the app uses, which will result in an angry customer. And angry customers are bad news, when you aim for word-of-mouth marketing.
Low-level coding: With the iPhone, it's possible to implement cpu intensive code blocks in assembly optimized for each generation iPhone, and thus optimize the code, so that you make the most of your resources. If I'm not mistaken Android only supports Java.