Mobile is the 'next big thing' in Internet solutions. The number of mobile devices (phones and tablets) connected to the Internet is increasing exponentially, and is predicted to match the number of desktop devices in a few years.
This means that your clients will expect to access your information or your applications at any time from any platform.
There are two ways in which you can deliver solutions to mobile users, via native applications or via mobile web applications. Following is our take on the merits of each approach.
Native applications (or 'apps') are the type that you download from an 'app store' associated with the vendor of the platform. They operate in much the same way as traditional desktop applications, ie download them, install them, use them, and occasionally repeat the process when the application needs upgrading.
Native applications, as the name suggests, need to be developed for the specific platform on which they will run.
Their main advantage is that they can make use of all the proprietary features of each type of device.
Unfortunately the mobile arena does not have a single platform that you can develop for and cover your whole user base. There are at least 4 major players in the market: Apple's IOS, Google's Android, Microsoft's Windows Phone, and RIM's Blackberry. If you develop for only one of the platforms, you are likely to only be targeting at most 40% of your potential users.
And all of these platforms have very different development environments. So, to deliver your application to all mobile users, you will need to develop the same application 4 times.
We don't think this is a viable or cost-effective long-term solution.
Our preference is for developing mobile web applications.
But if you have a business need for making your application available via the app stores, we have a solution for that as well, which can give you the best of both worlds.
Mobile web applications
Mobile web applications operate like normal web applications. That is, you don't need to 'install' the program, you just visit a web page in your browser and the application runs.
There are several advantages to taking this path for your mobile applications:
- There is no install process.
- The application can come from any website, not just the vendor specific application store.
- The application will update automatically any time the user uses the application while connected to the Internet.
- The one application will be able to run on any mobile device containing a modern web browser, ie just about all of them, even the cheapest 'feature phone'. Hence you can target all your users with a single application.
There are some limitations that need to be kept in mind:
- The mobile web application cannot access all of the features of each specific type of phone. But for most business applications, this is not likely to be an issue. The application can typically access standard features like the GPS location and accelerometer which are useful for location aware applications.
- The user interface will typically not be identical to the native user interface of the device. But this is no different to what the user would see when accessing any other web application from a desktop web browser.
Example web application
To demonstrate how web applications can operate across the full spectrum of devices from mobile to desktop, we have developed a learning tool for the Aikido community (Aikido Moves).
The tool provides a search/list/detail display typical of that required by many web applications. The same application drives the tool regardless of the platform it is displayed on, and only the layout changes to match the limitations of the device.
All of the functionality provided by this tool operates from within the web browser once the page has first loaded. The device can even be disconnected from the Internet, and all functionality will continue to work (except for the display of videos from YouTube).
Offline web applications
As mentioned above, it is now possible for us to produce web applications that can operate 'offline', ie with no current connection to the Internet. This is essential for the deployment of applications that mimic the capabilities of native applications.
For example, a reference section (eg catalog or fact sheets) on your website could be available to the user even when they don't have a current connection to the Internet.
This is not limited to reference material only. Updates can still be performed. Eg, task lists can be updated, and orders taken.
This can be very handy for web applications used by field workers who may be out of phone range at times. The application stores any entered data locally, and synchronises with the central database when connected.