Mobile App Development: Native, Hybrid, and React Native

Choosing a Mobile App Development Platform

When building an app, there are a lot of decisions to make, starting with what platform to use. Choosing the right platform can make or break the success of your product and ultimately your entire company. To make this decision you have to factor in costs, timeline, requirements, etc. With all of the available platforms and frameworks, it can be difficult to filter through the noise and choose the best option to solve your business needs. Each application has its own set of needs and requirements which will ultimately dictate the best development choice. In this blog we’ll weigh the benefits of two popular mobile platforms: Native and React Native.

Native vs. Hybrid

Before you can truly understand the differences between Native and React Native, let’s talk about the main two methods of building apps: Native and Hybrid. In general terms, native apps are ones that are built using the “native” tools offered by the app providers themselves: Apple and Google (iOS and Android). Apple has created the operating system for the iPhone and its other hardware products, so it’s up to them to enable developers to create apps on their platform. To do this they’ve developed a programming language called “Swift” (and Objective-C which we won’t discuss here). Google, has created the operating system for Android phones. They also provide a variety of tools, namely writing apps in a programming language called “Java” (also now Kotlin). To boil this all down, Apple and Google both specify programming languages and tools (Swift and Java respectively) that allow you to leverage their full operating system while allowing developers to build apps.

So that’s all well and good, but the problem is that Swift and Java are different languages. What that means is that if you want an app on the App Store and Play Store, then you have to write two separate applications! This can increase cost and complexity, so developers created a different way to develop applications which can be described as: Hybrid apps. In general, a hybrid app is an app that you can write in one language that can work on multiple platforms. This is traditionally done by utilizing web applications. Both Android and iOS phones have browsers which means they can support web apps. Google and Apple allow you to deploy apps where essentially you just wrap up a website and deploy it as an app. The most common hybrid platforms include Cordova, Ionic, and other tools like React Native.

Pros and Cons

While there are several advantages to a purely hybrid platform like Cordova and Ionic, there are also several disadvantages. Here are a few big pros and cons.

PROS:

1. Write once, deploy everywhere. With hybrid apps, you can use familiar web languages like javascript and have one code base that works for Android and iOS platforms. This simplifies maintenance, updates, etc. as you only have to deal with a single project.

2. Web languages provide less complexity. It’s generally easier to find web developers than native mobile developers. Most developers can work their way around CSS/HTML and javascript as those are very common web tools. Using a hybrid approach allows you to tap into that network and should simplify some of the learning curves and lower the barrier to entry.

3. Cheaper. Due to both the plethora of web developers and the single code base, it’s generally cheaper to build a hybrid app than a native application.

CONS:

1. User Experience. One of the biggest issues with hybrid applications is the poor user experience. In today’s world, it is harder than ever to get people to download an app and keep using it long-term. To compete with app heavy weights like Instagram, Facebook, and Twitter, you have to have an app that is simple to use and visually pleasing. A hybrid app is limited in what it can achieve. Because you are using web components and not the native view components, everything from buttons, navigations, and transitions will look and feel different. Users are able to notice these things. This could make the difference between mass and failed app adoption.

2. Performance. Another key to a great user experience is performance. The mobile browsers are all pretty fast, however, the hybrid platforms all carry extra weight by default. These apps are forced to compile and translate the web functions and elements to the core native responses. By definition there is a middle layer that the apps must go through. This over time can start to affect things like animations, response times, and overall app quality.

3. Feature set. Hybrid apps are limited in what they have access to. Browsers have limited access to the actual native device hardware. Some examples are the camera feed, location tracking, bluetooth, sensors, etc. If your app relies on native components such as navigation or camera feeds, a hybrid app is not going to be the smartest choice. Speed, access, capability, and support will all be more limited than in a native application.

What is React Native

Alright, now we know a bit about native vs hybrid, but where does React Native fit in? React Native (RN), built by Facebook (and launched around 2015) tries to give you the best of both worlds. While it’s technically a hybrid platform in that it can be written in one language (and works for both iOS and Android), it has several “native” features. RN leverages a javascript framework, React JS, to actually write the code in. However, it actually compiles into native views. This solves one of the biggest user experience problems with traditional web hybrid platforms like Ionic or Cordova. RN is not a responsive web app compiled into a mobile app, instead it is a true native app with views that are native to each platform. It compiles the actual app logic from javascript and allows you to write it in one place. Think of it as building the frame of a Ferrari and Lamborghini individually, but dropping the same engine into both. It allows it to look and feel like individual cars without having to build two separate engines.

RN does have a few downsides. Firstly, your access to native components still largely depends on whether or not there is a native module for a specified component. This means there is still a middle layer that translates the javascript into something Android and iOS can understand so you may be limited on some of the native hardware access. Consequently, there is still a question of speed compared to a native app albeit relatively negligible.

Which should you choose?

So what is the best option? Native, Responsive web hybrid, React Native? The answer depends on what you’re trying to build. If you are a small restaurant in search of an app to display your menu, it doesn’t really make sense to bear the cost of supporting a native app. You won’t need access to native hardware features and your users aren’t going to require intensive functionality. However, if you are a business that leverages google maps navigation, augmented reality, or if you are competing with instagram or snapchat on the coolest camera filters, then a native app is probably your only real platform option. In a large number of cases, React Native would solve the majority of critical functionalities.

At Lithios, we specialize in native mobile and web development. Therefore, we understand the full spectrum of how an app can and should work. Whatever your needs are, we help advise you on the most appropriate solutions. If you want to innovate and future proof your app, a native app may be best for you if the costs make sense. If you need something with more flexibility, a hybrid app could provide the best option. Want to do it affordably without sacrificing quality? React Native is a great choice that we have experience developing. Regardless of what you are trying to accomplish, we don’t compromise on quality and will make sure that we help you choose the best platform to ensure the success of your product and business.

DeShawn Brown Image

DeShawn Brown is the CEO of Lithios. He has a passion for developing intuitive product solutions for both startup and enterprise clients. In his free time he loves to weave sweetgrass baskets.

Looking to Build Your Next App?