Similarly, Microsoft is positioning its Windows Azure cloud platform as a back end for mobile apps -- and contrary to expectations, it's not limiting the effort to its Windows Phone 7 OS. The new Windows Azure Toolkits for Devices will include libraries for iOS devices and Android, too.
It's easy to see Microsoft's thinking there. While iOS is one of the top mobile platforms -- far outpacing Windows Phone 7 -- Apple does not yet offer a cloud computing platform to compete with Windows Azure, Google App Engine, or Amazon's Elastic Compute Cloud. The rumor mill says Apple may have something in the works, but unless the iPhone maker moves soon, Microsoft has a huge opportunity to gain a foothold as a mobile back-end provider for iOS apps.
Should you build mobile applications in native code or deploy them using Web technologies? It seems the answer is both -- and you can throw cloud platforms into the mix. While this is all well and good, however, the move toward a mobile-plus-cloud architecture presents important gotchas that developers need to recognize.
First, hosting any application on a cloud infrastructure presents certain risks. Not least of these is the risk of outages, which can effectively cripple cloud-backed apps. So far, no cloud computing platform has proven itself 100 percent reliable, with Amazon, Google, and Microsoft customers all experiencing outages.
Equally important, as much as developers complain about mobile platform vendors' "walled gardens," users of cloud computing platforms also risk vendor lock-in. Moving large data stores between services can be extremely challenging, and in many cases application logic will need to be retooled when migrating between providers. A number of organizations are actively pursuing cloud interoperability standards, including the Apache Foundation and the IEEE, but these efforts are immature and there's little incentive for the cloud vendors themselves to cooperate.
But the greatest challenge may be simply finding developers who can successfully bridge the worlds of cloud and mobile development. Both methodologies are relatively new. Demand for mobile developers, in particular, continues to be high, with many companies resorting to outsourcing or expensive retraining to gain the skills needed for creating mobile apps. Finding mobile developers who are equally skilled in building apps for cloud platforms seems almost like asking too much.
Of course, while hiring new talent now might sound like a depressing prospect for project managers, smart developers should hear opportunity knocking. Application development is changing, yet again. Time to hit the books.
This article, "Mobile, cloud, and the evolution of application development," originally appeared at infoworld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at infoworld.com. For the latest business technology news, follow infoworld.com on Twitter.