[Galaxy S I9000 Q&A, Help & Troubleshooting] andrewluecke:
I guess there are a few things to keep in mind:

Politics:

1) Apple tries to regulate what is permitted to be installed on their phones. They don't provide any real guidelines, nor do they tell you in advance if your application will be accepted. You'll only discover after submitting your app that it isn't permitted. So they waste your time, and numerous high end projects have developed their application only to discover Apple blocks them because "they are duplicating functionality" *cough competing*. Yes, lots of money has been lost.

2) Apple is Non-Disclosure Agreement overload. Send an email to apple and it always says "this information is confidential". Basically, Apple's agreement is so bad (unless it's changed recently) that they can cancel the account/sue you any time they wish. That increases your risk further.

3) iPhone's can be jail-broken to install 3rd party apps, but many people wont. Even if the Google store wont accept your app, they can manually install it, or you can use another store... Without jailbreaking.

4) Many developers often complain of long delays getting their apps approved, and when removed from the store by Apple, they have to flood Apple with emails for reason's why. On android, you don't even need to use the App store, in fact, Android has the benefit of allowing paid apps to be sold in countries with export restrictions (because they can sell it via other means).

5) Piracy is possibly more rife on Android, however, Google are apparently implementing an API which allows apps to check if they were purchased for that phone, which should strongly reduce piracy once available (because it means that dodgy stores will need to actually crack the programs). Once this is implemented, hopefully it will stop the jackass spammers from selling pirated stuff.

Development Process:

1) iPhones use objective C, Android uses Dalvik. Dalvik is VERY similar to java, one simply needs to learn the differences. Objective C is also quite easy to learn though, but it probably takes more experience to do well (because c++ doesn't have the idea of selectors). If you try creating apps on the iPhones without using objective C originally though, your app might be removed. On android, frankly, Google doesn't give a damn provided, it works.

2) Big win for Android here, the Android SDK works on Linux,Windows AND OSX. It integrates with eclipse which already has a large user-base. Whereas, you need to buy a mac for code for the iPhone, and the SDK is OSX only.

3) That being said, you can make a cross-platform webapp that can be sold for both, but the user needs to be online.

4) Objective C is compiled code, whilst Java is bytecode. Bytecode can run as fast as compiled (with some initial overhead). Native sounds great, but if Apple ever does a processor change for their phones, it might be a world of hurt. If massively-multicore mobile processors are released, Android is probably better suited. That being said, by then, you'll probably need to fix some things in your app anyway because of API changes.

Actual sales:

1) Apparently in the past, you would have sold more in the Apple market. However, in the past, Android mobiles were actually quite rare because Android stunk. Froyo is probably the first Android OS that can compete against iOS effectively because it now supports JIT. There is also a much greater emphasis on Android these days in advertising, and I see more Android advertising than iPhone. Possibly inaccurate predictions suggest they will overtake the iPhone in 2012 too.

2) Sales figures don't represent profit though (so whilst iOS may generate more still, it's less than Apple claims). A google market account costs $25, whereas an Apple iPhone development account costs $99. Furthermore, you need Apple equipment to code for the Apple market (which can be significantly more expensive than PC's), and there is no estimates done to determine profits lost by being rejected from the Apple app store (there have been major projects which cost thousands to develop which have been rejected). So greater overheads on the Apple store, which means for cheap/quick apps, you are probably safer developing for Android (especially if you don't already own a mac).

My opinion:

For me, developing major apps is too high risk for iPhones. Although, if your app is approved, there are potentially bigger payoffs than Android. For small apps which don't have a predictable further, you may earn more on Android because of lower overheads. If you app is rejected for iPhone though for competing, you wasted weeks/months of your life, and need to use a 3rd party store (since only hacked phones can use them though, you dramatically decrease your sales instantly).

Anyway, my thoughts are that by the end of the year, everyone will know what Android is, and you may start to see manufacturers getting together to launch MAJOR campaigns to promote Android, especially since they now all have a common enemy (Apple basically took a cheapshot at other major manufacturers to justify their design flaw). Apple is only a small guy when it comes to manufacturing phones, and so it's as though they threw a few tiny pebbles at a team of football players to show off. Of course, some of those football players have already started retaliating, and it just depends on how annoyed they got.

Personally, I think iPhone would be great if they didn't do the "anti-competitive" thing they always do, but as it stands, I am now doing my Oracle/Sun SCJP, and hope to get into Android coding soon. If Apple starts acting less evil though, I will take another look in their direction, but they are mistreating the users they need the most, the developers. It's a pity, because Apple really has potential.

Source: I haven't sold any apps on either market yet, but I have mostly decided on developing for Android.