I had to port a mobile app to both iPhone and Android. The Objective-C wasn't much of a barrier as I already knew C and C++ so it was mostly just syntactic sugar.
Of the two platforms the iPhone was by far the easiest to get my head around - in terms of architecture an iPhone app is very close to writing a desktop app.
Android on the other hand has a completely different approach, it took a lot longer to understand and get productive with. You can do a lot more with it, but it's definitely a bit odd.
I've also written a couple of my own iPhone apps, one of them quite cool (Sudoku Grab
) which was featured by Apple for a couple of weeks and one of them just a silly game to learn open gl. They make enough to justify the amount of time I put into developing them and the amount of money I've spent on marketing (approx 0). I chose the iPhone platform to develop against simply because it was the one I felt most at home programming against.
However, my money would be on the Android platform becoming dominant - it's going to have a few issue, device fragmentation being the biggest one.
What amuses me is how no one seems to have learned any lessons from the past. I remember working during the dot com boom and a typical conversation was "There's billions of people in the world on the internet - we just need 1% of them to use our website, that's just 1 person in every 100! We're going to be rich!".
I actually had someone telling me exactly the same thing about the app store the other day "there's millions of iPhones....."