client logo

26 October 2018

React vs React Native ...

React.js (also known as React or ReactJS) is a popular JavaScript library for building user interfaces. Originally developed by Facebook, it was heavily influenced by Facebook’s XHP, an HTML component framework for PHP. The technology has been open-sourced since 2013.

React is used to create large, fast and scalable web applications. It uses Virtual DOM and a diffing algorithm for rendering, and allows developers to create applications where data that changes over time can be viewed without reloading the page.

The diffing engine makes DOM manipulation extremely fast – faster even than vanilla DOM scripting.

Another feature of React is its unidirectional data flow, where properties are passed from the parent component to child components as a single set of immutable values. This is different from, say, Angular with its more familiar bidirectional data flow. But it does make React applications more predictable and easier to debug if something goes wrong.

Another feature is the ability to build applications out of small, reusable and testable modular components. Many of these components are written using JavaScript eXtension (JSX), but can also be written in pure JavaScript. JSX is familiar in appearance to HTML, which is of course familiar to many developers.

React doesn’t provide a complete application framework as it’s designed just to build UIs. So that means developers can use their own choice of libraries to do other tasks in the application.

Where is React used?

The Facebook website uses React, as do many other high-performing web applications including Instagram, Netflix, WhatsApp, The New York Times, AirBnB and Dropbox.

So that’s React – a front-end, component based JavaScript library for building user interfaces. It’s especially useful for large data-driven applications that interface with Facebook and Instagram, amongst other platforms.

React Native

React Native, on the other hand, is used to develop apps on Android and iOS mobile devices. It was open-sourced in 2015, and its basic working principles are the same as for React, although there are differences. It doesn’t manipulate DOM using Virtual DOM for one thing.    

React Native’s main strength is that it doesn’t rely on WebViews, unlike other mobile application development frameworks such as Cordova. So instead of rendering to the browser’s DOM, it uses Java APIs to render to Android components, or Obj-C APIs to render to iOS components.

What makes this possible is a connector bridge (built in C/C++) that enables the two realms in a React Native application (the Native thread and the JavaScript thread) to communicate with each other. This communication is asynchronous (so the threads never block each other), batched (for optimised transfer) and serializable. 

The bridge allows communication between the realms – even though they’re written in different technologies.

React Native lets developers build native UIs, and is becoming increasingly popular. Apps that use it include Facebook Ads Manager, Instagram, Walmart, Bloomberg, AirBnB and UberEats.

Here at JBI Training, we offer a range of training courses for Front End Web and Mobile App Developers including:

  • React training course (2 days) where you learn to use React and Flux – See our React course outline 
  • React Native training course (3 days) where you learn React Native for rapid mobile app development – See our React Native course outline
  • Android training course (4 days) where you learn to develop powerful apps for Android – See our Android course outline
  • iOS App Development training course (3 days) where you learn to develop apps for iPhones and iPads – See our iOS App Development course outline  

All our courses are practical and interactive – and give you hands-on experience of building actual applications.

 

 

Case Study: Angular training makes a difference to customer engagement.

Find out more

VIEW ALL CASE STUDIES