Choosing a target platform when you develop an application is a big decision as your choice will influence many design decisions, make certain tasks easier and relegate some things to the realm of the impossible. For those of us with a managerial bent this dilemma is usually solved with a simple cost/benefit analysis, I.E. which of these platforms can net us the greatest revenue for the smallest cost? Usually this comes down to how large a particular user base of a platform is (although that’s not everything, as I’ve pointed out) as that translates into the largest number of potential sales. However the advent of application distribution channels such as the App Store and Xbox LIVE Marketplace has complicated this metric somewhat, especially for those developers making it on their own.
For large development houses the biggest market still appears to be the way that many of them gauge which platform to target first. One of the greatest examples of this is Call of Duty: Modern Warfare 2 as it owes its success to its beginnings on the PC. However the lack of dedicated servers angered the PC crowd who thought that their omission was a travesty against them and that their outrage was enough to sway Infinity Ward to change their minds. However if you took a look at the sales numbers PC copies of the game accounted for a very small percentageof their overall sales putting that platform squarely in the minority. The developers rightly (from a managerial perspective) ignored the complaints as the additional work to develop the requested features would have far outweighed the potential sales that they could have derived. Still they catered to 3 platforms simultaneously as the opportunity cost for cross development for them was low thanks mostly to code portability between the Xbox and PC.
When you switch over to the other end of the spectrum the cost vs benefit analysis takes on a different form. You see in large organisations you have the benefit of being able to hire on people with the various skill sets required to develop a product for a targetted platform. If you’re lashing out on your own you are faced with the choice of either developing for what you know or training yourself up on the platform that you wish to target. Whilst most skilled developers won’t take long to become proficient when you’re looking to generate income every moment you spend not developing product is a sunk cost. Logic then dictates that you stay with what you know first before attempting to branch out into other areas lest you waste a significant amount of time developing a product that doesn’t suit your target platform.
You can see this kind of behaviour quite clearly in the mobile development space with a mere 2.6% of Android and iPhone developers having it both ways:
The answer (approximated in the graphic below) surprised us: of the nearly 55,000 mobile developers in our database over 1,000 (1,412, to be exact) had already publishedapps on both iOS and Android. This represents more than 3% of the published iOS developer population, and nearly 15% of the published Android developer group.
Despite the impressive total, we worried that it would be too easy for the fanboys on both sides of the aisle to dismiss these numbers as a crackpot minority. So we dug a little deeper, using our AppRank methodology to stack rank this cross-platform developer group based on the total volume and quality of coverage they’d received among the leading tech blogs worldwide.
Anecdotally the pattern I’ve seen is that most cross platform applications actually have their roots in a single platform. Take for instance the indy smash hit Braidwhich made its debut on the XBox LIVE platform. Whilst it was initially planned for a Windows release it took quite a while for it to make it to that platform. It has also made it onto the PS3 but not until long after it had proven success on 2 other platforms. My inkling is then that many of these cross platform developers started out as single platformers and as they had success in one they decided it was worth their time to attempt another one. Few, if any at all, would attempt to do more than one platform right from the get go.
So the question remains, is cross platform development actually worth it? For people like me probably not initially. The additional work to create a product for multiple platform not only increases the initial amount of work required it will also increase the on-going maintenance time for each of the individual versions. It seems like the best idea is to write and polish your application on your platform of choice and then, should you find success, begin the process of porting it over. This goes double if you’re looking to make some cash off a platform as the sunk costs of development and reskilling are one of the quickest ways to kill a potential revenue stream before it’s fully realized.