It’s a mobile-crazed world, and skyrocketing demands are not the only problem. Developers also need to choose the right technologies for building mobile apps. Today, there are three broad choices: building native apps for each platform; building a mobile Web app that can run on browsers, using HTML 5, CSS, and JavaScript; or taking a hybrid approach by building mobile Web apps, and then putting them in native wrappers so they’ll run on devices like native apps do.
Native applications
Native applications are built to run on a specific mobile platform – iOS, Android, or Windows Phone. Code is written directly for the specific hardware, and can’t be ported directly from platform to platform. Development tools used to build native apps are typically provided by the owner of the platform. For example, iOS apps are typically built using Apple’s XCode. Google’s official platform for Android development is Android Studio. For Windows Phone it’s Visual Studio.
Native apps can take full advantage of all of a device’s built-in hardware. Because the apps have been written specifically for each device, they offer high performance are particularly important for games, and also useful for graphics and media apps.
There are drawbacks, though. Developers with skills for writing native apps are in short supply, and charge top dollar. Those costs aren’t just for the initial app. Apps need constant maintenance and bug-fixing. They also need to be updated regularly. So the high costs tend to be ongoing.
Web apps built with HTML 5, CSS and JavaScript
Unlike native applications, these aren’t downloaded as apps onto mobile devices. Instead, people visit a web page on a mobile browser to run them. These are full-blown apps, with the interactivity and features you’d expect. Web apps can also make use of some mobile hardware such as GPS, although the support tends to be limited for sensors.
They’re easier to build than native apps because they use the same skill set as that for building non-mobile Web pages. It’s easier to find Web developers than it is to find developers of native apps, so there’s a larger pool of talent from which to choose.
There are some drawbacks. Web apps aren’t always able to take advantage of sensors on every device. They also don’t have access to a device’s contact lists and other kinds of data. Because they’re not distributed on app stores, it may be difficult to get new users to find them.
Hybrid applications
A hybrid application is a Web page built with HTML 5, CSS, and JavaScript, that is then put in a wrapper so that it runs on a mobile device like a native app. It can take advantage of most, but not necessarily all, of the sensors and other features built into each platform, such as notifications. Just like a native app, it has an icon on the home screen.
With hybrid applications, you often first build a Web page as you would normally, using HTML 5, CSS, and JavaScript. After that, you use a platform such as the open source Apache Cordova or Adobe’s PhoneGap – based on Cordova – to turn the code into a native app. The main benefit of this approach is that you don’t have to hire multiple developers for multiple platforms. One drawback to this approach is that the resulting apps often don’t look like native apps and have the same interface and controls that native apps do.
Making the decision
To decide, you need to take a long look at your mobile needs, resources, and timeline, says Forrester analyst Michael Facemire.
For now, native apps are best for companies that are building consumer-facing apps, need their design and interface to stand out, and want top performance, for example, for games. Web-based apps are best-suited for internal apps, B2B and internal apps. Hybrid apps take the middle ground between the two, allowing apps to look somewhat like native apps, but are built using Web standards.