It could be easy to dismiss all of the second-generation players, or to choose a platform that has enough mass and allows speed-to-market, and even to find some development partners with the experience to accelerate development.
Or there are tools that let companies write an application once and publish it to several platforms.
When I talked with Ideaworks Labs at Mobile World Congress, I was pretty skeptical of this approach. Many of the mobile developers I talked with this week run across every platform in existence, and they wouldn't touch these tools (there are several, including Adobe's attempt to get AIR onto every platform). But some of these developers are also building applications that require access to lower-level phone functions. Shazam, for example, must program around the natural noise suppression mechanisms build into most phone networks. This is likely unique to Shazam, and even Ideaworks admits it wouldn't abstract that sort of functionality.
But the company claims that as much as 97% of mobile code is exactly the same for an application that runs across multiple platforms. Ideaworks compiles to the ARM CPU instruction set, and since ARM runs in virtually every smartphone in existence, the company thinks that's a really good starting point. It then creates a packaging tool for every platform. To be truly effective, it has to create a superset of code for various new functions. At first, it was touch screen capability, and then it was multitouch, and then it was accounting for how each phone rotates to portrait mode. Each platform performs these functions differently, and Ideaworks has to account for all of it. It believes that for a majority of applications, this approach is spot on.
While I remain skeptical, I'll keep quizzing developers about it, because if it works as advertised, it sure would take away a great deal of pain. In fact, companies could get on with building mobile applications in popular languages like Visual C++, which is what Ideaworks supports, and hit mute on the sounds coming from the platform battlefields. Or just toss all the noise over to Shazam.
There's one more piece of this, and it's potentially the most important for enterprise applications -- the kind that require things like business logic and security and data synchronization and two-phase commit. It's not trivial when the client is a desktop, and it's certainly not trivial for mobile applications either, especially when there are a seemingly infinite number of client platforms to connect all of this to. Despite the BlackBerry's difficult client application programming environment, this is one area where BES starts to shine. There are also cross-platform solutions like Sybase Unwired Platform.
All of this weighs a bit heavy, perhaps, but the potential payoff is enormous and it cannot be ignored.
Fritz Nelson is the editorial director for InformationWeek and the Executive Producer of TechWebTV. Fritz writes about startups and established companies alike, but likes to exploit multiple forms of media into his writing.
Follow Fritz Nelson and InformationWeek on Twitter, Facebook, YouTube and LinkedIn:
Twitter
@fnelson
@InformationWeek @IWpremium
Facebook Fritz Nelson Facebook Page
InformationWeek Facebook Page
YouTube TechWebTV
LinkedIn Fritz Nelson on LinkedIn InformationWeek