By now, most organisations are running several mobile apps to support workers in different job roles as they move about. Some organisations develop their own apps, others buy them, and some even support bring-your-own app. Most organisations use some combination of these three ways of providing apps to workers.
When deciding on the overall architecture of a mobile app, developers have to decide whether the app will be native, HTML5, or hybrid (partially native and partially HTML5). The distinction is important for CIOs, regardless of who develops the app. Whichever choice is made, it should be consistent with IT’s overall mobile strategy, and it should be something IT can support.
The traditional approach has been native, which is to develop the app for a specific device, using a language such as C++, and subsequently making source code modifications to produce versions for other devices. Developing native apps takes a long time and requires a lot of expertise. Supporting multiple device types means spending extra time making modifications for each device type, and it also means maintaining multiple versions of the source code.
A more recent approach to developing mobile apps is to use HTML5, which is an overhaul of HTML 4.01 - the previous version of HTML, which came out in 1999. So much has changed since 1999 the new version is rich in new features - and many of those new features support the mobile worker.
HTML5 is cross-platform, so theoretically you can develop an app that will run on any device - the so-called “develop once, run anywhere” principle. HTML5 provides for offline operations, so when an internet connection is not present the user can continue working.
All major browsers support some of the elements of HTML5, but since the specification is not yet an official standard (still changing as you read this article), no browsers provide full support.
Native apps generally run faster, because they pass through fewer layers of interpretation. They also access device functions more easily. For example, apps that need device-specific security features are better developed native.
While HTML5 does support offline operation, programmers can do a better job of providing a smooth transition between online and offline operation when they use native features and tailor the transition to the specifics of the app and the business process it supports.
On the other hand, it’s easier to develop HTML5 apps. Programmers don’t need as much experience, and they don’t need to be experts on different device types. HTML5 development is cheaper and faster.
Google, Apple, Microsoft, and many other companies are all for HTML5, but they recognise the specification is still work in progress. As Facebook’s Mark Zuckerberg points out, HTML5 is definitely the way forward, but it’s not yet where it needs to be.
For the time being, many developers have opted for the hybrid approach, writing the user interface in HTML5, and using native code for features that need to run fast - and when special attention has to be paid to offline support or device-specific features.