Native, web or hybrid mobile apps, which technology to choose?

This question can give a feeling of déjà-vu. Indeed, the debate has been going on for a long time now in the mobile development community and the question has been addressed many times by bloggers and developers around the world. A simple Google query will unearth plenty of different answers.

However, this question is still meaningful not only because many companies remain unclear in their choice, but also because answers to the question have substantially changed over the past few years. Web and hybrid app technologies have grown and their range of applications has enlarged with them. On top of that, new tools and development frameworks have recently emerged, offering an even more intricate mix of technologies and a greater amount of flexibility. An example of these are Mobile Application Development Platforms (MADPs) that can generate largely native apps from a single original codebase and do not have to be written in web languages (contrary to hybrid apps).

For now let’s focus the essentials factors that come into the equation when making a decision on which type of mobile app to choose depending on the context. We’ll look at the three main types of apps by summarizing their strengths and weaknesses, followed by a prediction of the future trends of mobile app development.

The differences between the 3 common types of mobile apps (native, web and hybrid) can be grouped into 7 unique factors:

  • Development cost
  • Code reusability
  • Device access
  • UI/UX consistency
  • Performance
  • Distribution channels
  • Monetization

Native apps

Native apps are apps developed in the native language of each mobile operating systems using an Integrated Development Environment (IDE). On iOS native apps are coded in Objective-C or Swift, whereas on Android Java is primarily used. They are also integrating platforms SDKs for seamless integration with the OS.

Undeniably native apps have a lot of strengths, but their biggest weakness resides in the fact that their codebase is reusable only on the platform for which they have been created and is difficult to port to other platforms: native apps have to be developed for each single platform. This generally means that if the app is to be available for more than one platform the development cost of native apps is the highest of the three types. However, in some particular cases, native development will end up being cheaper than trying to optimize web or hybrid apps with performance issues. Now thanks to platform SDKs, native apps offers a complete access to the device hardware, so if your app needs to access a great variety of APIs (camera, GPS, gyroscope, accelerometers, etc…) native development is generally the way to go. Additionally, UI consistency is seamless: users benefit from the full user experience (i.e.: multi-touch, double-taps, pinch-spread, and other compound UI gestures). The performance of native apps is the highest of the three kind as no abstraction layer is required. If fast and fluid animations are required don’t look elsewhere: critical app performance is where native apps reign supreme. High performance is especially important in gaming, apps featuring highly interactive reporting and intensely computational algorithms. For high responsiveness and top-notch user experience, native development is the number one choice.

Web apps

Web apps are pure HTML5-based apps running on a web browser. Despite not using any elements of the platform UI, web apps can still offer a look, feel and user experience rather close to that of native mobile apps thanks to JavaScript and CSS techniques, even if they are in essence “touchable” web pages.

Web apps are developed once for all platforms as they simply rely on a web browser. Their development costs are therefore the lowest of the three kinds. Device access is rather limited (to components like the GPS for geo-location) but the number of supported APIs is growing over time. UI frameworks can help them garner a fairly consistent user experience, although definitely not on par with native apps. Other limiting features of web apps are offline usage, user authentication and storage security, which prevents them being used in Business to Employees (B2E) scenarios. Overall performance is the major problem affecting web apps, as they rely on both browser and network connection. However, a strong point of web apps is that they are not restricted in their distribution and app stores do not take a commission. The trade-off is that they are not able to harness marketing tools provided by these app stores such as rankings and featured placement. Web apps also have to be manually bookmarked if the user wants to create a shortcut on their home-screen.

Hybrid apps

To offset the limitations of web apps (especially in terms of user interface, performance, device access, distribution and monetization), hybrid apps have attempted over the past few years to combine the best of both worlds, essentially by wrapping an HTML-coded app inside of a thin native container that provides access to native platform features. For this reason, hybrid apps have received more and more traction. They are definitely suitable for use in a lot of cases, yet not in all cases.

Hybrid apps aren’t 100% portable, but most hybrid development tools will enable the reusability of a single codebase to several platforms. However extra development skills will be required in order to use these hybrid tools, making the development cost of an hybrid app somewhat between that of a native app and a web app. Same as for pure web / HTML apps, UI frameworks will help bringing a consistent user experience but this will not be on par with that of native apps (not all UI features can be recreated using JavaScript). The UI frameworks will also have to stay up to date with major platform design updates. Abstraction layers (native web rendering engines) often create a performance overhead that prevent native-like performance. Therefore, hybrid apps are not recommended when app performance and user experience are critical components. Lastly, in terms of both distribution and monetization, there is no difference between a hybrid and a native app: both share the same monetization opportunities (in-app purchases, platform-native ads and app premiums) and the same level of commission for the app stores!

Conclusions

The table below gives a quick overview of typical business cases:

 Native appsWeb appsHybrid apps
Perfect for: Highly responsive and graphic / CPU intensive apps

Apps that require access to specific device hardware

Apps that require a high level of user experience and platform UI integration / customization
Apps with searchable content (eCommerce storefronts...)

Marketing / promotional apps

Enterprise apps (B2E) in some cases

Apps that need to circumvent app stores distribution

Enterprise apps (B2E)

Media, productivity and business apps

Apps that do not fall into the two other categories

Not suitable for: Apps with critical budget constraints

Apps that could provide the same user experience if developed web-based or hybrid

Apps that require high performance and user experience levels

Apps that require secured on-device storage

Apps that need to work offline

Apps that require intensive computational power

Apps that require a lot of platform UI features

The radar chart below summarizes the different factors described in the previous section highlighting the pros and cons of these different technologies.

Past and future trends

Currently native apps are favored by consumers because of their performance and seamless platform integration. Most successful mobile apps right now are native apps. However mobile development technologies are evolving fast, and hybrid and web apps can certainly do more than they could a couple years ago. Hybrid app frameworks can now access many low-level platform features, such as the gyroscope and accelerometer.

An area where web apps, hybrid apps and MADPs are becoming more common is in business enterprise. Business-to-employee apps (B2E) are expected to grow exponentially over the next few years, and most companies do not want to build and maintain two or more codebases. This has led some analysts to recommend choosing hybrid apps or MADPs for large and mid-scale internal apps, while developing native apps for external users with high performance expectations. Web apps tend to be recommended if the organization needs to circumvent app stores, build an eCommerce storefront or a marketing site that are easily searchable and accessible through the web.

New standards are currently being drafted by the W3C that will give web apps more capabilities for accessing device APIs, but for the next few years hybrid apps and especially native apps will provide significantly more access to device APIs. Besides, the performance of web and hybrid apps will also improve as mobile browsers get faster JavaScript engines.

The future looks promising for hybrid and web apps, but from a pure performance perspective developers will still favor native apps for the foreseeable future. In her predictions for 2015, Maribel Lopez, founder of mobile market research firm Lopez Research, wrote: “Despite the progress in HTML5, most companies still believe that native app development delivers the best experience. In 2015, most firms will deliver greater than 60 percent of their mobile experiences via a native application.”.

There is no such thing as a “best” type of mobile application. There is a range of options for different business needs, app requirements, target audiences, development timelines and budgets, and this range of options is getting wider with time, offering greater flexibility… and complexity. The crucial point is to evaluate carefully the most suitable application type for a particular business need while armed with the proper knowledge.

We will keep you updated with any new technologies and tools appearing on the horizon. Stay tuned!


BLOG COMMENTS POWERED BY DISQUS