Reading:
Native vs HTML5 vs React Native Apps: Who Wins?

Image

Native vs HTML5 vs React Native Apps: Who Wins?

In the seemingly eternal battle for mobile domination, campaigns are waged on multiple levels. Yet while most people are well acquainted with the public squabbles of Apple and Samsung, in the background, a much more subtle contest takes place, as programmers and CEOs scuffle to determine the best technology for mobile app development. Thus the native vs HTML5 vs React Native battle was born.

Understandably, to the technically disinclined, it may come as a surprise that not all apps are built natively. Yet in reality, not only are alternative technologies extremely common, but there are many valid reasons for putting them to good use.

A Cornucopia of Options

Beyond iOS’ native ObjectiveC and, Swift, and Android’s own version of the Java programming language, software engineers are able to create apps using web technologies like HTML5, or hybrid solutions that include both web and native components, such as Flutter, PhoneGap, React Native, the Ionic framework, among others.

With every case, it is important to be aware of the strengths and weaknesses that will serve to aid companies in their final decision.

The Native Powerhouse

When it comes to native technologies, the advantages are as well established as they are manifold. Because there is no discordance between code and operating system, the method provides arguably the best performance and user experience, as all applications are blended seamlessly with their respective user interfaces.

Native applications are also granted full access to the platform’s APIs, which allows them to make use of trendy features like push notifications while simultaneously leveraging built-in components (e.g. the device’s camera and GPS). For games, this is also the most appropriate method for development, as the use of native frameworks in the likes of Apple Metal enable hardware acceleration, allowing graphics to be rendered faster and the system to behave noticeably — and consistently — more responsive.

Yet in spite of all these benefits, native app development is certainly not for everyone.

Two applications, not just one

Because iOS and Android use very different programming languages, design and user interface guidelines, companies wishing to ensure cross-compatibility are forced to develop two apps instead of just one. This generates higher costs and results in a much slower time to deployment, as by very necessity, it requires more developers with a wide variety of skills.

It is claimed, for instance, that Facebook employ 300 software engineers to build their native iOS applications, and 100 others to develop their Android counterparts.

The Versatile Web Solution

To address these concerns, a feasible alternative is to make the most of web technology. Using the popular HTML5 language, for example, we are able to create websites that can closely mimic mobile applications. This approach should greatly reduce expenses because qualified developers are readily available, and users, in turn, are given the ability to access applications from the comfort of any connected device.

Furthermore, web applications also benefit from using the same stack of technologies for both their web and mobile incarnations, and the same applies to the server side.

Restricted access to native features

Unfortunately, however, the technology has its own set of drawbacks. In addition to prohibiting the use of native APIs, pure HTML5 solutions will also bar companies from the coveted app stores.

That being said, recent innovations in web technology have led to the creation of so-called browser APIs. These are slowly bridging the gap between HTML5 and native applications. Application programming interfaces such as getUserMedia, for instance, now enable access to mobile device cameras, though this is still far more likely to be supported on the desktop.

Another disadvantage is the fact that web applications tend to be somewhat slower and less intuitive than their native equivalents, resulting in lower user satisfaction ratings and additional negative feedback.

The Hybrid Approach

Hybrid solutions aim to solve all these problems by joining the best of both worlds. In essence, companies can choose to design mobile-friendly websites that are later repackaged into native applications. This enables apps created with current web technologies to gain broad access to native APIs, ensures cross-compatibility, and even permits distribution via the App Store and Google Play.

Although not technically a hybrid solution, React Native is based on a similar but more elegant concept. Developed by Facebook and Instagram, the framework allows developers to build native-like Android and iOS applications using JavaScript in place of the platforms’ standard technologies.

Due to JavaScript’s ubiquitous status, React Native largely accomplishes its goal of uniting performance with convenience, simplicity and cost-effectiveness.

Not all butterflies and rainbows

It is important to note, however, that even though it may advertise itself as a one-size-fits-all solution, React Native is still very new and by its own nature has to deal with the limitations of JavaScript. Furthermore, the framework also suffers from poor documentation and a significantly high learning curve for native developers.

Native vs HTML5 vs React Native: The Winner

While the native vs HTML5 vs React Native battle still shows no signs of waning, Software Planet Group come armed with a very deep understanding of these systems. So to summarise it all, let’s take a look at the helpful table below:

Native HTML5 React Native
Pros

The best performance

Native Ul from the start; no need for workarounds or any other attempts to mimic the original user interface

Full access to all APIs

Most appropriate method for game development or intense data processing apps

Latest OS features are immediately available upon release

Better battery efficiency

Cheapest approach

Cross-platform

Highly flexible

May also be accessed via a desktop interface

Some access to native features

Developers are readily available

More affordable than native development

Same code-base may be used to develop both Android and iOS applications

Simple and convenient

Hardware functionalities are processed by the appropriate platform

Good performance

Supports distribution via the App Store and Google Play

Cons

Expensive

OS-specific

Arguably slower and less intuitive

No access to native APIs

Restricted publishing to official app stores

Hampered by JavaScript

Converting to native code may be unstable at times

High learning curve

Does not support all native APIs

In 2018, by the way, an alternative hybrid solution definitely worth checking out is Kotlin/Native, a newer technology that not unlike React Native, enables companies to compile applications to native iOS and Android binaries and thus can greatly speed up development.

But of course, just like the choice between an iPhone or Galaxy S, in the end, no amount of wrangling can determine the best of these technologies, as they are each to be judged on a case-by-case basis.

At SPG, however, we stand ready to evaluate your company’s unique situation and make your business the final victor. 

Related Stories

What is Gitflow
November 12, 2020

What Is Gitflow and Why Should You Use It?

Git and often Gitflow have become a de facto standard. Read more about how they enable working collectively with the source code and other artefacts.

When_Game_Development_Meets_External_Vendors_Article
September 20, 2017

When Game Development Meets External Vendors: Game Over?

The global gaming business is at an all-time high. This year, the industry is expected to generate over $150 billion (£116.5bn) in revenue.

Rest API and GraphQL cover
November 27, 2020

GraphQL vs REST: What to Choose in 2020? (UPDATED)

GraphQL vs REST: which one should you choose? Just like any other tool, RESTful and GraphQL APIs both have their own purpose, strengths and weaknesses.