React Native Explained For Recruiters

React Native Explained For Recruiters
Post Author: Aaron Decker
Date published: June 24, 2021

I have previously written about how there is a difference between Mobile Developers and Web Developers. Yes, they are both programmers and they are building user interfaces but the devices they program against are different and the the languages and tools used are different.

What is React?

React is a technology created by engineers at Facebook to help build user interfaces using JavaScript for the web. It has some interesting approaches to handling data, breaking up code into "components" and efficiencies in how it renders these components in your browser.

These technical details get into the weeds really quickly so here is the important part: React has become enormously popular because it has a good developer experience, makes code more testable, and is easier to work on and share on large teams.

Note: "developer experience"? I'm talking about how easy something is to work on and how much developers like to work on a specific technology.

A large ecosystem has grown up around React, and because of this network effect it has become easier and easier to build large complex web applications using React on the UI side. Frontend web development is now pretty much dominated by React.

React Native: Trying to use React for Mobile

React Native is a project that brings the core concepts of React to mobile devices (Android and iOS). To put it more clearly: you can use React Native to write React code in JavaScript and the output will be native mobile applications for Apple devices and Android devices.

There are several potential advantages here:

  • You can use React & JavaScript libraries in mobile applications
  • Your engineers don't have to learn new programming languages to make Mobile Applications
  • You can have one single codebase for both iOS and Android (this is called cross-platform development)
  • Potentially you can spent less time on testing since you only have a single code base to test.

What is the catch?

Well, there is a catch, yes. React and it's libraries are mostly built to create and render HTML elements for web pages in browsers. But React Native is actually going to output native components that iOS and Android use respectively. This is a little bit of a complicated situation to explain. I'm going to show some diagrams from the official React Native Documentation to try to help explain this.

You can think of React as a set of instructions but these instructions can be translated into multiple outputs. You can make the outputs map to buttons on a phone or buttons on a website. React Native is a set of technologies that change this mapping from web HTML output to mobile phone UI elements (buttons, scrollbars, views, text) that iOS and Android use.

Here is a mapping they provide in their documentation as an example to demonstrate this: React native component mapping

You can see how a given React Native component can map to different outputs on different platforms. This ends up making things look different on iOS & Android and there are limitations developers must deal with around this.

Additionally because of this you cannot just easily port existing code in React directly over to React Native projects. It's not that simple even though this is what people often immediately assume. The point I'm trying to get across here is that React Native is a different skillset than React for web, even though it builds on top of React for web knowledge.

Summary

When looking for React Native developers it's important to understand that you are looking for mobile developers that going to be working in the specific technology of React Native. If you are going to look for any web developer with plain old React on their resume you can't really be sure they would be interested in a React Native project. This is something you want to clarify immediately because React is not the same as React Native.


Want updates?

Want new posts about tech topics emailed to you? Sign up to the list below 👇

Also, if you are interested in learning technical topics through a video course specifically created for recruiters, don't forget to check out the courses I offer.

The main course "How to Speak Software Engineering Jargon for Recruiters" is specifically designed to help tech recruiters get up to speed fast on technical topics.


Written By Aaron Decker

I'm currently a co-founder and head of engineering at a venture backed startup called Bounty. I tend to think of myself as a backend engineer that can work up and down the stack in Typescript. Previously, I have worked as a Tech Lead and hired teams, and as a Senior Software Engineer at multiple fortune 500 companies building large products. I also did a brief stint teaching programming courses as an Adjunct Instructor at a local community college, which taught me a lot about breaking down complex things into understandable chunks.