Mobile platforms are clearly pushing desktop computers out of the market and according to latest statistics these will gain even bigger share of the market in the upcoming years. No wonder more and more old school developers had to requalify for creating games and applications either for iOS (made by Apple) or Android (made by Google), or even for both of them. Of course, the learning curve is quite fast for a skilled programmer, but still there are many new features that were introduced by the mobile devices industry.
Why only these 2 platforms have to be mentioned? Sure there is Bada, Nook, Kindle and Windows Phone, but these allow targeting only an extremely small audience when compared to the two strongest mobile platforms, and not everyone is willing to spend additional costs for creating the app solely for less popular platforms.
From the user perspective, both iOS and Android are almost the same. Both come with widgets, allow multitasking and are quite stable and secure. On the other hand, from the developer perspective, there are significant differences among these two.
Most likely the key difference is the programming language that is used. iOS uses Java and Android uses C in its objective version. There are many flame wars all over the internet discussing which platform is better; we say it is a tie. The truth is that both come with decent application framework, and there is an enormous amount of documentation for both languages.
Moreover, there is a countless number of different development tools and 3rd party libraries available turning the whole development process into a quick ride. With that being said, it is really up to you if you favor Google or Apple, or more precisely Objective C or Java language.
Going cross platform
If the developer still wants to reach the biggest audience and monetize the app as much as possible, there is no better way than using some cross-platform development kit. Such a SDK allows the programmer to develop the application just once and run it on all platforms (that's what cross-platform stands for) making the development curve quite fast. However, there are always some drawbacks of this approach and some key factors have to be considered when deciding if to go cross platform or not.
Still, saving the both, money and time, using proper SDK became a standard among modern mobile applications developers.