The need for enterprises to get serious about mobile computing rose a notch with the news that in 2011 smartphones outsold computers -- desktop, notebook, netbook, and tablet combined.
Two related data points from the fourth quarter of last year: iPads outsold desktop computers; and in five years Apple's iPhone business has grown from nothing to bigger than all of Microsoft.
Mobility enhances agility. This is true whether we're talking about enabling mobility from the inside or the outside of the corporate firewall. Workers want to access corporate data and applications any time from anywhere, and companies that enable them to do so will reap rewards of increased nimbleness, timeliness of response, and productivity.
Customers also want to interact with companies on a wherever/whenever basis -- for the three years since January 2009, mobile Internet use has doubled every year. Many agile companies have already started the process of rendering customer-facing gateways friendly to mobile access.
Some app considerations
Assuming you're convinced of the need for increased focus on mobile, or are already working on a mobile strategy, let's look down the road to developing a smartphone app for either internal or external use.
First of all, the process is rarely as simple as writing a small, self-contained program that runs on an iOS or Android phone. It often will require infrastructure in the form of a server and a set of API endpoints, especially if any data is going to be collected from users. Developing the API can consume half of the development time and resources of the entire project.
Once you have come to grips with the actual effort that will be involved in app development, the next crucial decision is: native or HTML5? It's possible that the particulars for an app could require access to device hardware components or APIs not easily reachable through HTML, CSS, and Javascript. In this case you may have little choice but to go native, on all the platforms of interest -- and that could be a large number of them.
In general, HTML5 will be the more future-proof development choice. A good rule of thumb is: Web when you can; apps when you must. This blog outlines some of the considerations in the native-or-HTML5 decision.
Developing in HTML5 offers the hope of a true "write once, run anywhere" experience. A suitably designed HTML5/CSS3 app can transition seamlessly from desktop to laptop to tablet to smartphone display. Such apps, which have seen increasing adoption since first being proposed in 2008, are said to have a "responsive" or "fluid" design -- here are a number of examples.
Related posts: