Not all apps are created equal
Today, mobile devices are a standard delivery platform for applications, often with higher usage numbers than the desktop/laptop version. This has changed the development and programming approach substantially, leaving three basic options…
A native app is programmed within the specific environment of the target platform so that it runs “natively”. A native app designed for iPhone/iPad therefore only runs on iOS – the Apple operating system used on those devices. The app does not work on other platforms such as Android or Windows.
Because the native app exploits the underlying hardware and operating system to the fullest, it runs fast and efficient. It can use whatever capability the device has, such as fast graphics, geolocation, compass, accelerometers or cameras.
The main disadvantage is that the app is limited to one platform. Making it available for other platforms requires re-doing the app in another programming environment, e.g. for Android. So creating a native app for X platforms means doing the work X times. Obviously, the concept, the underlying logic and much of the graphics design work is re-usable, but the extra programming cost can quickly escalate. Another disadvantage is that native apps need to be distributed through multiple stores: at least iTunes and Google Play.
Web/browser based apps
A web app is basically just a shortcut (a URL) represented by an icon. “Starting” the app forwards you to a website that looks like a native app.
If multiple devices are targeted, it’s important that this website is designed as a so-called “responsive” site: it adjusts its layout to the screen size and aspect ratio of the device, so that it still offers good usability on different screens.
The advantage of this approach is that there is only one design effort that is valid for all devices. At first, this seems like a great solution. But the proliferation of browser incompatibilities, especially for HTML5/CSS3, has substantially increased the development and debugging time to obtain the same results on all devices.
Another disadvantage is that web apps are generally slower and less feature rich; they have limited or no access to the hardware features mentioned before.
Finally, a web app requires that the device is on-line. If there is no internet access, the web app is not reachable and cannot run. Some efforts have been made to allow off-line use, but so far with limited results.
There is no distribution requirement through app stores, because it’s a website that can be reached directly.
A hybrid app is also developed only once, but is then published multiple times to all the required platforms. On these platforms, the hybrid runs within a native shell such as Adobe Air, Xamarin or Apache Cordova.
The advantage is obvious; the app runs natively on the device, not as fast as a true native app, but better than a web app and with access to hardware features. Most importantly, the development cost is greatly reduced when compared to multiple native apps.
Making the right decision
Which approach is the best depends on the requirements: target audience and their devices, type of content, on-line all the time vs. offline, distribution, performance and of course… budget. The more platforms you want to be on, the higher the development cost. How much higher depends on the chosen method.
HTML5 has become the standard in web and hybrid apps, but it is still a work in progress, with incompatibilities between browsers. It is not (yet) the all-encompassing solution because of its limited capabilities in off-line use and interactive 3D.
In general, the budget needed for a marketing application should not be underestimated, due to the proliferation of devices with varying specifications, leading to an exponential increase in testing requirements. More than ever, a good preparation, clear specifications and a professional and experienced development partner will ensure excellent cross-platform results within the allocated budget.