Choosing a mobile platform to target

As a mobile developer, I often get questions like "Nice site! When's the mobile app coming?" or "we really need an app for this specific need, which platform should we use? or even "I want to make an app, but I don't know what yet - should I target iOS or Android?" Basically, people want to know what mobile platform that they should target when choosing to develop an app. Being in a custom software consulting role, I'm often challenged with devising answers to these questions. I want to share some of the criteria and questions that I use when offering an answer.

The very first thing to note is that there is no one correct answer, which is why many apps exist on multiple platforms. Even for the "first" platform to target, if you have the desire and ability to target multiple, there's no one correct answer.

Another critical point is that you may not need "an app." If you don't have need of device hardware1, don't need (or it doesn't make sense to have) offline use, aren't creating complex interactons or animations, and don't need push notifications2, you could probably focus on making a mobile optimized web app. Granted, some companies opt for creating native apps anyway, for reasons like exposure in the app store, having "homescreen branding" on users devices and driving interactions; however, these things are all reasons based on the idea that your goal is to gain users/interactions. Many businesses are looking for apps to enable internal users to perform some task, and none of these things are necessary.

If you determine that yes, you do need one or more of: high performance, push notifications2, offline use, data synchronization, public app store exposure, or hardware features1 (camera, high storage, GPS, background refresh, bluetooth, etc), and hardened security (encrypting local data, using certificate based authentication, etc), then you've ruled out the web app route.

Determining which native mobile platform to target depends on how important a lot of different factors are to you.

Trying to recreate an existing app or idea on a platform where it might not have much exposure? Try Windows Phone or Blackberry. Just want to try your hand at development? Pick whatever you want.

Internal or Specialized Apps

Specialized use cases are apps developed for a very small, or at least O(1) users. These are the most common in my line of business. For them, problems like fragmentation and exposure aren't an issue, because the users will generally be decided up front, or by some business use case, and will have a very small, if not standard, number of distinct devices. In some cases, companies will already have devices of a particular platform. Other factors will be more important in these cases.

If the specialized use case requires purchase of the devices in addition to the development of the app, many companies will be turned off by the cost of Apple hardware, compared to cheap Android tablets. However, cheap tablets are exactly that - cheap, and can lead to early hardware failure and, almost always, unsatisfactory performance.

Prior experience can be a big deciding factor in a decision to target one platform or the other. If a company's IT department has experience with deploying apps to one particular platform, or the company has a developer who can lend internal support to or take over development of apps on one platform, these are good reasons to target that platform.

Public Facing Apps

Fragmentation

How important is supporting a small number of devices and OS versions? iOS has a much less fragmented device and OS user base than Android. Android runs on hundreds thousands of unique hardwares each with different features and implementations, many with manufacturor or telecom level manipulations to the operating system. Are you prepared to support them? iOS currently is only available on five distinct devices being sold today, with 90+ percent of users on those five plus another eight or nine devices. How about the 90+ percent of users NOT on the newest version of the operating system? iOS, conversely, has it's latest version (7.x, at the time of this post) running on 74% of iPhones. Fragmentation is a big issue in mobile development, so I highly encourage more reading on the subject. However, if you don't have the desire or means to support a fragmented userbase, and your goal is to reach more users, this is points toward iOS.

Footnotes

  1. Web apps can actually leverage push notifications with services like Roost.