The first decision you have to make when deciding to create an app, is the target platform. There are four main platforms: Android, iOS, Blackberry and Windows Phone. You will have to decide whether your app will target a single platform, or you are going to engage a multiplatform development and, for both cases, decide which are going to be the platforms you support. Initial cost, maintenance, design and usability, user perception and brand positioning are the key factors when making this decision. And once it is done, the process is not over, because you will have to decide which form factors you support; smartphone and tablet being the most common options, but with new ones such as TV becoming big players in the market.
In this post we are going to give a few opinions about each of the main platforms, so you can then decide whether to do a single o multiplatform development, and decide which devices to target.
Android (by Google)
Currently the most popular platform in terms of available devices in the market. Most of the content for this platform is free, which makes it very difficult to monetize an application. The development language is familiar for developers as it is based in Java, and there is no formal review process, causing the app market to be flooded by similar apps, personal projects, unofficial apps, etc. The variety of screen resolutions and sizes makes the task for the developer a little harder, requiring tougher testing and multiple design resources.
iOS (by Apple)
The other big player in the market, was the first to develop what is now known as a smartphone: the iPhone. Developing for this platform is more expensive, the review process for the apps take 7-10 days and it is based in a rather tough policy, the development language is less common (Objective-C) and it has the biggest number of market apps. In the other hand, hardware specifications are fixed for all the devices in the platform, the monetization models available (direct sale, In-App Purchase, advertising through iAd) work much better and customers are more willing to pay for content.
Blackberry (by RIM)
Once the biggest player in the market, now in a tough position due to its reluctancy to adapt to the competition. Allows multiple language development (from plain Java, to HTML and now also supporting Android apps), very well positioned in the business market (due to its email technology) and also in a younger part of the population (mainly due to its communication tools) and big supporter of physical keyboard devices. They are now adapting to the competition by introducing some touch screen devices and opening their system to Android apps, but the are still lacking a family of devices with bigger screens and more focused to entertainment apps rather than to business tools.
Windows Phone (by Microsoft)
The last player to enter the game, has yet to find its position in the market. They started by opening their hardware specifications to a wide range of manufacturers, to then close a deal with Nokia that has not yielded the expected results. Probably the most innovative UI of all the contenders, with a disruptive proposal and a good distribution platform like Zune, Windows Phone it biggest weakness in the development tools, being C# the only available language (not even native C is supported) and not supporting OpenGL for graphics.
Now that we have the platforms in place, we will be giving you our advice in single and multiplatform (and which ones you should choose when doing so) development in a following post.