So I need to make a business decision about which platforms to develop for, and that decision almost always comes to how many potential customers versus the cost to develop and distribute for the platform. I’ve broken each down based on recent events.
The first step is to see what the potential revenue is based on the number of people buying a platform and likely to buy one in the future. The numbers of unit sales are readily available. Of course, this doesn’t actually tell you the number of users since those who stick with a platform tend to buy into each subsequent generation of products. In the smartphone space, this number is easy since most users stick with their current device for the duration of their contract. Of course we never really know how many people are new and how many people are buying the next generation.
Given all this, it is just the baseline. If there aren’t enough units sold and those customers don’t seem to be the kinds of customers that would want to buy my products, then I’m not going to develop for it. The real decision point comes once the cost components are analyzed. How do I view the major platforms (from within North America)?
- Hot: Apple iPhone/iPod Touch, RIM BlackBerry
- Simmering: Microsoft Windows Mobile
- Cool: Nokia Symbian, Google Android
Surprised? Remember, I am looking at units sold and the kinds of users being attracted to the platforms (relative interest in my products). Symbian devices have not made much of a dent here in North America and Android is too new. An International discussion would be completely different. But I believe if I can’t make money in my home country then I can’t make it overseas, particularly given the added costs of product localization and foreign distribution. As for Microsoft, they always seem to be there but that’s it. People buy their products but no one seems to love them. It’s a real shame.
The next major decision point is distribution. Generally, I only care about distribution in terms of costs to reach customers. I don’t really see distribution as a means of getting to the customer — that’s what marketing is for. Instead, distribution is all about product delivery. How easy is it for people to find my products once they want to buy them? How easy is it to purchase, download and install? And how much is it going to cost me as the company to do it?
This is where the wheels have started to fall off the bus in the mobile business over the past 6 years. Costs have been through the roof (67% of product price in some instances) and it hasn’t eliminated any of my install and reinstall issues.
And then comes Apple. Charging 30% and eliminating all install and reinstall issues in the process, we finally have a channel of interest. On top of that, Apple is doing a ton to raise the interest and awareness of third-party applications, a huge added bonus.
And Apple started an avalanche: Google and now RIM have announced their own stores, and Microsoft is rumored to have one in the works. All have roughly the same terms (20-30% of retail price) and the same promise.
So how do the major platforms shake out?
- Hot: Apple, Google
- Simmering: RIM
- Cool: Nokia, Microsoft
Until those rumors play out for Microsoft and Nokia, they will stay on the backburner when it comes to distribution, at least. As for RIM, the devil is in the details. Some we know (20% cost to developers) but many more we don’t (how will partners be treated, will it be on the devices, will anyone care).
This is where mobile computing development gets really hard. Every platform takes its own custom development. Fine, they all are either C-based or Java-based, but every user interface is different. The costs to develop for a subsequent platform are staggering, particularly when the size of smartphone software development companies are taken into consideration.
I have been hearing a lot of noise in dev communities about Android lately. These old-time developers, who developed in C on Palm and Windows Mobile, are now faced with moving their applications to Java on RIM and Android. (iPhone and Nokia are C-based.) Even if all devices used only Java or C, it would still be a daunting task to redevelop the user interface layer of the application for every device.
The other big announcement in the previous weeks is RIM’s support for Google Gears. Google Gears allows a web site to be used even if there is no web connection. So as a developer, we can hypothetically write a web-based application and then run it locally (without an Internet connection) on supported platforms. With RIM’s announcement, that means that RIM, Android, Windows Mobile, Windows, Mac and Linux systems all support Google Gears now.
Hot, simmering and cool? I can’t rate them. Every platform takes custom development still. At some point, hypothetically, we could support iPhone native along with BlackBerry, Android, and Windows Mobile with Gears, but not today. Today, the other factors have to be considered first.
If I’m a developer today, I am looking very hard at iPhone (as we are). They have the distribution channel and unit sales to be exciting. If I came from the Palm world (as we did), I also have some code that can translate over. It’s still a custom development job, but at least not a complete one depending on how much back-end programming has to be done.
My next decision is harder: do I leverage my C code base and develop for Microsoft’s multiple variations of Windows Mobile or do I jump to the hotter platform with better distribution promise in RIM? And my answer to that one is: follow your customers.