The options for distribution are quite good. Microsoft doesn't run its own store, at least not in the same big way that Apple does, but it seems to be moving in that direction. Its Total Access program offers plenty of free games, ringtones, and other goodies. Trial versions of games such as Guitar Hero are free but cost $14.99 to unlock all of the features. Developers will probably want to turn to other distribution platforms, and there are a number of companies, including Kagi and Handango, that sell software to phones. There's not one path from compiler to paying customer.
"Windows Mobile is by far the most open," says Flick Software president Jay Flick. "There's very little you can't do." He explained that it was much easier for the programmer to modify all parts of the phone's appearance, including the front page, a place where other development environments exclude third-party software.
Joining the club
Which platform should you choose? Most programmers will be led by their past experiences. These devices, after all, are becoming more and more like little desktops, so it only makes sense to follow the same path. One iPhone programmer's résuméthat crossed my desk pointed out he had been programming Cocoa applications for the Mac for some time. It was only natural that he would migrate to the iPhone.
For the same reasons, many shops with a big investment in Windows .Net programming will see a natural path to migrate to the Windows Mobile world. There are fewer differences now to get in the way, so why not rejigger that desktop app to work with the smaller screen? Most of the widgets work the same way. Java programmers will feel more at home with the phones from Google, Nokia, and RIM.
The big difference between these worlds and the desktop is the greater amount of discordance. They're still too new for many of the differences to be worked out. If you want to write code that will run on many different platforms, Java Micro Edition is one of your best choices, but it's far from a slam dunk. A Swing application may run on almost every desktop these days, but a Java MIDlet won't. The iPhone may be running something close to Mac OS X, but that doesn't mean it has the same Java support.
What should a new business do if it has no legacy code weighing it down? It depends heavily on the nature of your product. Java ME applications run on very cheap phones, and they're widely supported on different lines. The development tools can cost next to nothing, and there's a path, albeit imperfect, to high-end phones like Google's Android that are also programmed in Java.
If you're after sales to end-users, there's no doubt that Apple's tightly controlled garden has delivered some stunning sales numbers. They offer a simple, direct, and trusted pathway that's hard to duplicate with the other phones. But the iPhone is a pain for every other type of development.
Other companies are certain to follow Apple's success. Mike Kirkup, a manager of developer relations at RIM, explains: "We did announce an application store front for launch in March 2009. It's important to understand that what we're focusing on is providing a clear and single point of location, but it won't be the only or sole channel." They'll continue to support many other paths, including independent merchants such as Handango and enterprise channels.