Tech Review Series: React Native

This article starts new tech series dedicated to cross-platform development and we begin with React Native – one of the most loved frameworks for creating efficient cross-platform applications. Due to its functionality, React Native allows building apps that are almost indistinguishable from native ones in terms of performance and UI/UX. Hence, if you want to save your development time and budget, React Native might be your top pick.

Tech Review Series: React Native

React Native: a brief history and the current state

The history behind React Native is quite interesting. It was created in 2013 as a project during an internal Facebook hackathon and in 2015, Facebook officially launched it as its framework. At first, React Native supported the iOS platform only but in September, support for Android was added. In 2016, React Native started supporting Windows and Tizen platforms.

It is worth noting that after a year from the official launch, in 2016, React Native already gained really impressive statistics on GitHub: 1002 contributors, 124 releases, and the 14th most starred repository on GitHub. 

The secret to React Native’s success lies in its functionality, ease of use, and the fact that it significantly cuts down the development time while allowing to build feature-rich applications with great UX. So where does React Native stand today?

As Stack Overflow Developer Survey 2020 states, React Native is in 5th place of popularity among professional developers with 11.8% of votes. It is also in the top-10 most loved development tools alongside Node.js and Flutter. As for the companies using React Native, the list features Tesla, Discord, Pinterest, Uber Eats, and Bloomberg. 

React Native: technology type

React Native is an open-source framework for creating cross-platform mobile apps. It is based on JavaScript and allows building natively rendering applications which is one of its unique features. In other words, you write your app in JavaScript and JSX – but then React Native brings into action rendering with native code by using native rendering APIs. This is the secret to React Native apps being so high-performing and having seamless UX: because it uses real mobile UI components, not webviews. This provides a native look and feel of the apps and ensures their seamless design and functionality.

React Native operates under the “Learn once, write anywhere” principle. What it means is that once a developer masters React Native, it won’t be a problem for him to create an iOS or Android app and to deploy the app across all needed platforms.

So what else makes React Native stand out? Here are its biggest advantages:

  • React Native is based on JavaScript: hence, developers have access to a great number of external libraries;
  • React Native can be integrated with an existing mobile app;
  • It enables developers to create their own native code that can communicate with the JS code;
  • Native rendering (goes without saying)
  • Code reusing and sharing.

Flipper

One of the coolest features that React Native got with its version update is Flipper, introduced in the 0.62 version. Flipper is a debugging tool for mobile apps that is used for both Android and iOS apps. And since its latest version, React Native now has default support for Flipper.

Flipper has a bunch of great options, including:

  • Viewing crash reports;
  • Viewing and editing databases of devices;
  • Viewing network requests;
  • A marketplace that pulls plugins from npm;
  • Editing preference lists.

In short, Flipper is great for easy app debugging and allows user-friendly visualization, inspection, and control of your application.

The use of React Native: most common cases

While you might think that React Native is used for creating cross-platform mobile applications of any type, there are still certain use cases that React Native is best suited for. Let’s see them below.

Prototypes and MVPs

While React Native may not be the best choice for developing heavy apps with uncommon functionality, it’s great for quickly developing an efficient working prototype. Since React Native can significantly cut down the development time, it will also reduce time-to-market and will allow you to quickly roll out a fully functioning prototype.

Streamlined UI

In a React Native app, the UI part of the app will run on one thread and the JS part of the app will run on another. And since these threads communicate via a bridge, too much data and interactions may cause performance issues.

Hence, React Native is great for apps that do not require too many user interactions and views. A perfect example of an app with a streamlined UI is Bloomberg Business News where the main purpose is news display.

React Native Pros and Cons

React Native is an amazing framework indeed – but it can’t be all about advantages. Same as any other development tool, it has certain cons to watch for but they shouldn’t be a problem for an experienced developer.

Pros

Hot reloading: you can speed up the app development by having your app reload automatically any time the code changes;
Updates without app store approvals: if you have small fixes you don’t need to make a new build. You can use special plugins (like Code-Push) to update the current build. And the update process takes 2-5 minutes only;
Faster to build: React Native provides many convenient development tools and has a big community that can support you anytime;
Sharing the codebase for iOS, Android, and Web: React Native has a code-writing structure that is very similar to the one of ReactJS;
One team – all platforms: React Native helps to create a mobile app for two platforms at a time (iOS, Android) while writing a single JavaScript code;
Native-like performance: React Native has a very flexible structure of threads, so it works very quickly.

Cons

Native development still needed: there are specific platform issues that can’t be implemented with React Native only;
Dependence on Facebook: in the case Facebook stops supporting React Native for some reason, it will also affect support of new features for Android and iOS platforms;
Feature lag: when Apple and Google introduce new features for their platforms, the React Native team needs some time to update the platform with new functionality.

Expert Opinion

React Native is a JavaScript framework for mobile cross-platform development for iOS and Android platforms. React Native is based on the ReactJS framework that was created by the Facebook company and thus it has great support. The framework also has a big community and a variety of useful modules and components for building high-performing custom applications. Most of the code that you write in RN can be shared across platforms but there are a few exceptions: for example, when you want to build a specific design or add non-standard behavior for a mobile platform. In general, complex custom design or specific platform features will most probably require the development on native platforms.

React Native stands out from other cross-platform development tools (such as Ionic or Cordova) due to its use of rendering with native components. In this way, your application looks like a native one and has a really outstanding performance.

I’d like to note though that React Native is still under very active development and the community keeps growing. Still, it is a very effective tool and I highly recommend paying attention to it.

Full Stack Developer

Raman Navarych

Conclusion

That was our take on React Native – a young but powerful framework that helps create high-performing applications with seamless design. In our next article, we will talk about Xamarin – another cross-platform development tool that goes head to head with React Native when it comes to the choice of a development tool. So make sure to sign up for our newsletter in order not to miss our news and updates and feel free to share your thoughts and comments with us!

Want to stay updated on the latest tech news?

Sign up for our monthly blog newsletter in the form below.

Softteco Logo Footer