When it comes to building mobile apps for your business the choice of approach is anything but simple. The tools and technologies available to build cross-platform apps are still immature and there’s no easy solution to this dilemma.
The 3 recognised approaches to building apps are
- Native apps – these are built for a single platform (e.g. iOS, Android) and can take advantage of all the platforms features
- Mobile web apps – these are usually a series of web pages optimised for mobile devices. They can run on any supported device but, amongst other disadvantages, lack access to some of the native facilities on the device
- Hybrid apps – these combine most of the capabilities of native apps combined with the portability of web apps.
In this article we focus on the area of Business to Employee (B2E) apps and examine what is the right approach for these types of apps.
Gartner recently stated that they expect that by 2016 over 50% of B2E apps will be built using a hybrid approach. One of the key reasons for this is the growth of the BYOD trend (Bring Your Own Device) where businesses allow employees to use their own mobile device to access the organisation’s systems and data.
As Gartner said “The BYOD trend and the increased pressure on organizations to deploy mobile applications to accommodate mobile work styles of employees will lead businesses to manage a portfolio of mobile application architectures, and hybrid architectures will be especially well-suited to business-to-employee applications”.
Making the right choice for your business
How do you make the right choice of app model for your business? Here’s a starting point. (Bear in mind this is about B2E apps – not gaming apps or other apps that might need the advanced features and performance of a mobile device)
Native apps
If you are in full control of the of the environment that an app will run on and can mandate what devices and operating system version can be used then you will probably choose to build native apps.
These will give you all the capabilities of the device and will allow you to take maximum advantage of the graphics capabilities and performance of the device. You will also get enhanced security and local data storage enabling the apps to operate without needing a data connection.
Some companies issue their employees with a specific device (e.g. an iPad) to enable them to work more productively. In such cases building a native app makes sense as they can control the environment that the app is used in.
The key disadvantages of native apps are that they are device specific, are more difficult to develop and require a level of experience that is higher than other development scenarios.
Mobile web apps
Mobile web apps are built using HTML5 and JavaScript which are device agnostic and can be opened with any modern mobile browser.
You would choose to build mobile web apps in scenarios where you need to support multiple mobile environments and to enable the broadest access to the app. You would also consider this route based on the skills you have in-house as you will likely have people with extensive HTML skills.
Mobile web apps have one big advantage over native apps and that is that distribution and support is much easier than for native apps. When you need to fix a bug or add new features these become instantly available once they’ve been deployed to the server. No need to submit then to an app store for download.
However, mobile web apps offer significant limitations when it comes to offline storage and security. Whilst you can implement some offline capabilities by caching files on the device, it isn’t an elegant solution. As a result mobile web apps typically rely on a data connection.
Mobile web apps also have restricted access to the native features of the device and generally offer a dumbed-down user experience.
Hybrid apps
In simple terms hybrid apps are apps that are written in web ‘languages’ – HTML, JavaScript and CSS – but that use a container (or stub) app that runs natively on the device.
This allows hybrid apps to take advantage of most of the device features whilst supporting multiple different devices. Unlike a mobile web app, Hybrid apps render the HTML5 & JavaScript in a full-screen web view control, not in a browser thus enabling a better native-like user experience.
The vast majority of the app will exist as an HTML5 & JavaScript app but the native container app will enable it to use device features such as local data storage and tighter security. It will also enable access to device features such as the accelerometer, camera and geolocation. Hybrid apps can also be designed to work offline unlike most mobile web apps.
New toolsets, such as PhoneGap, are making it even easier to build hybrid apps. They leverage existing HTML & JavaScript skills so that you can more easily build apps that run on multiple devices without having to become experts in the native development tools.
So which approach should you choose
Most enterprises will have to manage a large and diverse set of mobile applications that will span all major architectures. They will have to build B2E, B2B and B2C applications that can run on multiple devices.
Depending on your business needs there may be situations where the only way to build a particular app is to build it as a native app. However, across the broad estate of apps that you will likely build the majority of these can be successfully built as hybrid apps.
Building native web apps requires a commitment to investing in specific skills and knowledge for each device supported. And as the number of devices expands the investment will only grow.
The one common platform that is supported across nearly all devices is HTML5 and JavaScript. You will already have these skills in-house so it makes sense to take advantage of them.
We would therefore recommend that, for the majority of your apps, you should consider using the hybrid approach. It will be the most cost-effective means of delivering new apps quickly and will have the highest chance of future-proofing your investment.
Posted by Paul S