Working on the move has become most people's normal way of operating. We are used to having our world in our pocket and being able to read and write emails, produce simple documents and generally stay in the corporate loop whether we are in the office, in the pub, on a train or (sadly) sitting on a beach trying to be on holiday.
To make this possible, applications have moved away from the desktop and laptop. Many of us regard carrying a laptop around with us – even a funky little one – as something of a chore. We think any device we can't keep in our pocket is too bulky and takes too long to boot.
The order of the day is being able to run our core applications from the phones or mini-tablets, as it's second nature to carry them on our person these days.
This gives us three choices. First we have browser-based applications: since every phone and tablet has a web browser (probably several if it is anything like mine) the simplest way to go is to use browser-based versions of those applications.
That's all very well, but using a web GUI on a small phone – iPhone-sized, say – is fiddly and something you won't enjoy if you do it a lot. Okay, some apps are clever enough to figure out you have a weeny phone and present a mobile version of themselves, but that is generally at the expense of usability and feature richness.
Next we have remote desktop sessions presenting what is basically a corporate PC desktop via a virtualisation technology from the likes of Citrix or VMware.
Now, a remote desktop on a full-fat iPad is just about usable, and on a midi-sized device it is kind-of okay as long as you don't do it a lot. On a phone-sized phone the pained look on your face will cause those around you to hide all the sharp objects in sight.
Let's hope, then, that the final option is reasonably attractive. So what is it? Easy: applications that run natively on your mobile device and hence provide a user interface and feature set that were designed into the apps in the first place.
This article will look at the feasibility of providing your roving users the ability to run things natively on the devices they carry around with them.
Whether you use commercial applications or write your own, the fundamental prerequisite is that users need to be able to access them. This means that you need an appropriately secure means of maintaining connectivity between device and server.
A standard VPN connection is not good enough. While a VPN is fine if, say, you are a laptop user and you log in from time to time (it is not a great chore to enter your credentials and, if you are sensibly secure, a two-factor authentication code when you plonk down on your sofa after a day at the office), you need to be able to prod the on button, type an unlock code and run your application.
The usual way to go is with a mobile device management (MDM) suite, which provides a secure, strongly authenticated link between the device and the corporate network, whether that network is in your office or the servers sit somewhere in the cloud.
MDM is a topic in its own right and we won't dwell on it here, but briefly, it is a means of ensuring that any device attempting to connect has been linked with the corporate systems and is able to use a nicely secure, encrypted link for application interaction.
Assuming that you have enabled your mobile devices to communicate securely with your corporate apps, the first step you can take to ease the usability of mobile applications is to adopt the commercial offerings whose marketing teams are aiming straight at people like you.
The phone sitting beside me is running the Windows Phone version of Microsoft Office, for instance, and it is surprisingly usable.
I have also been trying out a number of packages recently to see how businessy you can get on a phone and found a handy number of mobile apps, particularly from the better-known software vendors.
Presumably they can afford loads of developers and make using their products a breeze by providing a proper client instead of relying on web or terminal server connectivity.
Build your own
It is likely that you have some bespoke applications in your organisation – or perhaps you have commercial offerings that provide an application programmer interface (API) into which you could hook a home-built mobile application if that way inclined.
But is it really possible for the average company to consider building its own mobile applications? Well, let's have a look.
There are, of course, three core mobile platforms: Windows Phone (the artist formerly known as Windows Mobile); iOS, the Apple world; and Android. And if you are about to blurt “but what about BlackBerry?” go home and watch a film on your videodisc player and stop bothering people.
For each of the three platforms you need the appropriate software development kit (SDK). You can, if you wish, do your development largely using a command line interface (CLI), in the same way that you can, if you wish, poke yourself in the eye with a pencil. Honestly, you just wouldn't.
All three platforms have wonderful graphical SDKs which make the need for CLI-based development a thing of the past.