In our last User Experience post, we discussed the importance of choosing the right devices to creating a great mobile user experience. The second fundamental step is to:
PICK THE RIGHT APPLICATION ARCHITECTURE
Most mobile applications today are deployed using one of two major mobile architecture styles:
1) A native mobile application that is installed on the device and is developed for the specific mobile platform (e.g. Android, iOS, RIM, Windows Mobile, Windows).
2) A web-based mobile app that is rendered in the device’s web browser and offers similar functionality regardless of the device type or operating system.
There has been much debate lately over the merits of either approach, and the bottom line is that they cater to different sets of requirements.
Native mobile applications are undisputedly superior in every measure of performance and the user experience that they can deliver. Because they are developed specifically for the platform on which they are deployed, they can take full advantage of its built-in controls, sensors and capabilities in a way that web-based apps can’t. They offer easy integration with onboard and external peripherals, the ability to communicate with other apps on the device and ways to custom-tailor the user interface to the specific device or form factor. What’s more, native apps have full access to the device’s storage, which means that they can house all necessary user screens and application data locally to deliver fast data processing and a smooth, fluid user interface.
The drawbacks of the native app approach are that it typically costs more to create an app for every targeted platform, and that native apps are usually more difficult to update once installed.
Web-based mobile apps, by contrast, shine where native apps struggle. They are much less expensive to deploy to different devices because they’re created using relatively uniform web languages like HTML4 and HTML5. These web technologies ensure that the app maintains all or most of its functionality regardless of which device it’s used on. Similarly, because all application data and user interface are housed on a web application server and not on the device, app updates involve little more than refreshing the browser screen.
The disadvantage of the web-based mobile app approach is that it often fails to meet the breadth of functionality, business continuity and user experience requirements of enterprise users. Even the latest iterations of web languages like HTML5 lack the capabilities of native SDKs when it comes to integrating peripherals and other applications on the device. The same can be said about the application’s ability to use the device platforms’ capabilities to the maximum.
Because web-based apps are supposed to work similarly on a wide range of devices (from iPad to flip phone), they are built to a certain lowest common denominator that just doesn’t allow for cutting-edge features and user interface. Perhaps most importantly, web-based apps suffer from their limited ability to store information locally on the device. This means that they require a fast, reliable data connection at all time to function. While data networks have greatly improved in speed and reliability, many companies simply refuse to subject the performance of their mission-critical mobile apps to network availability: something that is completely out of their control.
As you can tell, if your primary objective is to reach a broad mobile population with a relatively basic mobile app that is a “nice to have” for your business, a web-based architecture may fit the bill. Yet if you’re running your business on a mobile solution and need it to be always available and always perform at 100%, a native mobile app is your best bet.