Earlier this week I suggested that the name "smartphone" seriously underestimated the capabilities of today's pocket computers. The latest ARM-based mobile processors (especially thise with GPU support, like Nvidia's Tegra and Qualcomm's Snapdragon) have plenty of horse power to handle what just a few years back were complex computational problems.
Sadly a lot of that power is wasted, or at least used in what can best be described as less-productive directions. Apps like Angry Birds, with their real world physics models, use a lot of processing power – but they're not the real world business applications that pocket devices are more than suited for.
Still, there are some effective uses of the device hardware, such as the current generation of photographic applications that include post-processing filters like this tiltshift approximation:
There's a lot of processing required to deliver these effects. So why aren't we seeing mobile enterprise applications taking advantage of these capabilities? It's not the development tools – there are plenty of effective toolchains for all the major platforms, mixing commercial and open-source tools. It’s easy to take the skills you know, Java for Android and BlackBerry, Objective-C for iOS, and .NET/Silverlight for Windows Phone 7, and build applications. You just have to get them to the devices and to your users.
And that brings us to one of the biggest problems facing mobile devices: installing and managing enterprise applications. Only BlackBerry has this problem licked, with BES (and BES Express) providing tools for pushing enterprise apps to mobile devices. The SuperApps model RIM is pushing to its developers also works best for enterprises, mixing enterprise code with the built-in PIM functions, and vice versa. Things get more complicated with the rest of the pack. Symbian's multi-layered signed code makes it hard to get your applications on a phone, while iPhone gets a desktop application to push corporate signed applications to enterprise managed devices. At least Android lets you install your code on any device, as long as users have enabled support for more than the Android Market.
Oddly, one of the most enterprise-focused mobile computing platforms, Windows Mobile, is taking an abrupt turn in its new Windows Phone guise. Instead of letting you install CAB files directly on the phone, you're going to need to use Microsoft's Marketplace to install all applications – even enterprise applications (and if you want to keep them private, you're limited to a very small number of users).
There is an answer, but it's one that doesn't build on the capabilities of mobile computing devices. Instead, it's just the browser, building applications in HTML 5. While HTML 5 browsers do come close to delivering what Microsoft is calling "The Native Web" in its IE 9 marketing, their mobile equivalents don't yet have the hardware acceleration and GPU rendering that boost desktop browsing performance by taking advantage of the available hardware. While the latest Android builds are starting to offer some of these features, we're still a long way from mobile web applications (even those written in Flash) giving us the same performance and capabilities of native hardware.
May be someday soon…