Several recent essays have described significant limitations of the Android platform that make it difficult to publish for Android, despite Android's slightly higher user base than iOS (52% vs. 42%).
All of my conversations over the past year with Android developers, 3rd party dev shops, more mature startups developing on both platforms and investors confirm a simple hard reality: building and releasing on Android costs 2-3x more than iOS. This is due to a multitude of reasons: less sophisticated tools, generally more cumbersome APIs, fewer exposed advanced features, enormous QA issues brought on by fragmentation, etc. The rough rule of thumb is for every iOS engineer you actually need two Android engineers—or twice the development time.
We’ve concluded iPhone is a better place to be:
- Our decision to build on top of SMS/MMS involved huge, unanticipated technical hurdles.
- Even when you don’t support older Android versions, fragmentation is a huge drain on resources.
- Google’s tools and documentation are less advanced, and less stable, than Apple’s.
- Android’s larger install base doesn’t translate into a larger addressable market.
To deliver a product that will improve people’s lives, we must sometimes break expectations and force users through a period of adjustment. The long-term path to user satisfaction sometimes involves short-term dissatisfaction.
Apple has been remarkably good at this type of product development — from OS X to their Intel transition to iOS 7– breaking away from past choices to provide a streamlined, initially unfamiliar product that’s forward-looking.
Microsoft, on the other hand, tends to retain all the choices of the past, as Windows 8′s dual UI illustrates. That’s a shame. No matter how good Metro might be, a sizable number of users will revert to the old UI because they know it. And that ensures Metro will remain sup-par: Microsoft’s product teams can avoid tackling difficult product design problems because users can always resort to the old experience.
The situation is similar on Android: by allowing extensive customization — and by permitting vendors, carriers, and users to replace built-in apps with third-party ones — Android’s product team has excused themselves from finding optimal solutions and making tough decisions.