"Where should mobile applications live?" is one of the key debates in mobility today.
The implications for developers, the enterprise and users can affect IT's effectiveness, companies' bottom lines and overall organizational success. But the answer to this question isn't always obvious or easy to come to.
The local-app model has momentum and mindshare today. The major platforms -- Android and iOS -- both sport hundreds of thousands of apps, and that's responsible for the dominance of these two mobile leaders. In the beginning, Apple didn't seem all that interested in a programmable platform. The original iPhone was mostly an iPod Touch with the ability to make phone calls built into it. But Apple quickly saw the potential and the demand for apps, plus the opportunity for revenue, and the rest is history. Because Android is a Linux derivative, it was oriented towards developers from the beginning.
The app model that iOS and Android devices use is the same as what has existed since the dawn of computing. Computers, including smartphones and tablets, derive their value from application software that runs locally on the computer. With advances in microprocessor technology, a handheld computer is still defined by the software it runs. As they say in the consumer market, it's all about the apps.
But it has become clear that it isn't all about the apps in the enterprise world. It's really all about the data: managing, securing, distributing and otherwise utilizing data to further the mission of the firm. And using the local-app model to put valuable data on any mobile device, enterprise-owned or not, introduces a number of concerns.
First, there's the obvious issue of security. Any organization can experience compromise of vital information once that data resides on a mobile device. Next, there's the issue of collaboration and sharing, which is the essence of modern IT and organizational success. It's much easier to share data through the cloud and maintain version control than it is when sharing data via local apps or email. Finally, there's the problem of bulk. Users may need access to terabytes of data, and handsets simply can't be expected to hold or even cache the latest version of everything that a user might need the way that cloud and Web-based services can. And keeping all those local apps updated requires big bucks.
In this state of affairs, it might be better for key computational and storage functions to live in the cloud. This Web-based services approach eliminates some of the concerns that come with using local apps, making collaboration easier for users and keeping all the data workers need in one place. IT can also take advantage of easy scalability and other key technologies, such as HTML5. Cloud and Web-based services are also often device-agnostic, which improves software lifecycle costs.
But the Web-based services strategy has its own key limitations. There are security concerns around storing data in the cloud, and using cloud services requires continuous Internet connectivity. Consider the dramatic drop in productivity resulting from a loss of Internet connectivity in any organization today.
Until the world becomes totally wireless, I have a rule of thumb for deciding whether to use local apps or Web-based services: Use Web and cloud-based services for internal operations and use local apps for any customer-facing requirements. This is a best-of-both-worlds option that offers easy development and deployment where sensitive information is involved, and control of the user experience where sales and marketing predominate. Of course, this is only a suggestion. A detailed analysis of specific application deployment scenarios and requirements should quickly help IT decide on the best path in any given case.