Airbnb is Dropping React Native — Should You Too?

Disclaimer - I have nothing to gain from promoting React Native. I don't even use Facebook. As an engineer, I just like the technology :D
  1. Framework Immaturity —Since React Native is a new framework, Airbnb was in the position to having to invest significantly in the technology itself in order to build their own apps. They often were doing “simultaneous infrastructure and feature development”. They even had to maintain their own fork of React Native to make contributions, and avoid disruptive fast-paced changes.
  2. Dynamically Typed — JavaScript is, of course, dynamically typed which makes refactoring a “nightmare”. And solutions for becoming statically typed like Flow and TypeScript had their own problems (Flow: “cryptic error messages”, TypeScript: significant switching costs).
  3. Inconsistencies Between iOS and Android — Although React Native should be consistent across both native platforms, some tiny details are still being worked out, e.g. some differences in JavaScriptCore that runs the darn thing. And third party libraries generally lean towards supporting one environment better than another, leaving one having a sub-par experience and Airbnb having to make up the difference.
  4. Three Environment Expertise — Instead of writing the code once, engineers actually had to maintain three environments: React.js, Android, and iOS. And write and then debug in all three. **Christ on a BIKE this sounds annoying**.
  1. Move Faster — The feeling of developing in React is that you are going fast. And they might still have been moving faster, but when Airbnb looked at the end-to-end commitments they were making the increase in speed was not enough to outweigh other shortcomings.
  2. Maintain the Quality Bar — The quality bar was maintained, but at the high cost of developing React Native and investing a lot into infrastructural development.
  3. Write Code Once Instead of Twice — because they were writing React, iOS and Android code as well as infrastructure code, they were actually writing code three or four times!
  4. Improve the Developer Experience — developers had to maintain a full Xcode, Android, and web development environment and debug in all three. With JavaScript not being easily strictly typed on top of everything, engineers were feeling stretched.

So What About Your Team?

Go Native

  1. Are you rich & huge?
  2. Is your mobile experience unconventional?
Go Native, like Johnny Depp… or not…

Go React Native

  1. Are you small & poor?
  2. Is your mobile experience relatively conventional?
Here’s the Android view
Mobile experience needs to be a 10-out-of-10

--

--

--

Educator, Founder, Engineer. Interested in Evidence Based Education and Solving BIG Problems.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

JavaScript — Object Oriented Programming: Encapsulation / Abstraction

How to make your code faster using JavaScript Sets

Building Vue Enterprise Application: Part 3. The Store

10 Cool JavaScript Features You Might Not Know About Yet

Using Data Provider Pattern for JavaScript Unit Tests

Javascript unit test displayed inside VSCode

NodeJS: Its Async Nature and the Event-Loop

JavaScript: The Good Parts of Arrow Functions

How To Build a Simple RESTFUL Backend API Application With Node & Express In TypeScript.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Braus

Braus

Educator, Founder, Engineer. Interested in Evidence Based Education and Solving BIG Problems.

More from Medium

Component Life Cycle in React Native

React Native Features and Advantages

Rename React Native Project Using Single Command

React Native or Native App Development: Which one to choose for your Business?