Did Facebook really slow down or move away from React Native?
Tags: reactnative, react, android, ios
Published: 2021-09-08 13:09:29

Mobile application development is moving super fast for all the UI frameworks. The winner will really be who ever is able to sustain a true community, just like Firebase has been killing all other mobile NoSQL backend solutions. So far Google has been doing it extremely well with [Flutter v2.2](https://medium.com/flutter/announcing-flutter-2-2-at-google-i-o-2021-92f0fcbd7ef9). In my opinion, unless Microsoft forces its teams to use [MAUI/Xamarin](https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/) like Facebook did with React Native, it risks getting "[Silverlighted](https://visualstudiomagazine.com/articles/2021/08/17/silverlighted.aspx)" eventually.


#### I thought facebook rewrote in native?

Just watched a talk at the [React Native EU Conference](https://www.react-native.eu) last week, where a Facebook Engineer showed how they had to significantly improve the main branch of react native to improve their fleet of apps and the efficiency of their teams.
![Joshua Gross's slide deck](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dezj6tp0gslwygkzyonv.png)

#### I recently interviewed for a native swift/obj-c position with Facebook, they have entire native teams

At 1 hour and 12 minutes of [this video from September 2021](https://youtube.com/watch?v=Kt--iBUQcww), Joshua Gross, Sr. Software Egr. at FB says:
> “At Facebook, all of our apps using React native, use react native from the main branch..”

Yeah you could be right that they are moving, because he doesn't say "all our apps use react native". But I did some searches and found that in mid-2018, there were unofficial rumors and some reorganization that made people believe that Facebook moved away. But according to the talk, they are still using it for over 1000 “surfaces”. 

#### The Bottomline

It’s important to note that all of the biggest drawbacks have already been tackled with updates really. One of the biggest is thanks to the use of JSI (like JNI in Java programming) in the libraries that uses C++ instead of the single threaded “JS Bridge” (for periodic communication between the JS code and native layer), thus you now finally get- “mutli threading” and “native performance”. The first talk of the conference by [Marc Rousavi](https://twitter.com/mrousavy) goes through it, and here's his GitHub repo of a [React Native app using JSI](https://github.com/mrousavy/Colorwaver) that detects "colorwaves (swatches/palettes)" from a camera in real-time by scanning each frame:
{% github mrousavy/Colorwaver no-readme %}
<img src="https://github.com/mrousavy/Colorwaver/blob/main/img/demo.gif?raw=true" alt="A gif animation showing the color palette generated from a live camera instantaneously"/>

_The First Prototype is an emerging Mobile App Design and Development consulting small business, specializing in [Cross platform and Native iOS & Android apps](https://thefirstprototype.com/mobile-app-development-detroit-ios-android.html). Sign up on our website, and [support](http://instagram.com/prototypemakers) us [on social media](http://twitter.com/prototypemakers), to be informed of simple innovations in projects like our 5-star NumberBomb game on [iOS](https://apps.apple.com/app/numberbomb/id1560372045) & [Android](https://play.google.com/store/apps/details?id=com.tfp.numberbomb)!_

---

{% collapsible Some Other React Native Criticisms %}
#### If I wasn’t so busy hating JavaScript, I’d be stepping into the mobile spot

If you are able to pickup any native/hybrid/cross platform UI framework, React Native will be a piece of cake in the learning curve, and pretty fun because of the live server/hot reload. Despite have a smaller PR budget than Flutter, React Native is [still the most popular](https://insights.stackoverflow.com/survey/2021#section-most-popular-technologies-other-frameworks-and-libraries) framework for building mobile apps. 

#### It’s easy conceptually, but the language makes it terrible. Besides, it’s less like mobile with hooks instead of using the lifecycle overrides.

Actually, React & React Native applications can be written in TypeScript (TS) instead of JavaScript. And TS takes away most of the unsettling parts of React because it's strongly typed, and unsurprisingly [more than half of react native apps](https://twitter.com/mrousavy/status/1435165435796860928) use Typescript. Hooks are just lifecycle overrides beneath the surface, but for functional components instead of class components

#### Maybe I’m completely confused. I’m going to go look at more JavaScript and rot my brain some more

Don't worry, hooks is new too! It was introduced in v16.8 and we are on v17 now, but everyone’s storming towards it. And there’s different kinds of hooks you use depending on which lifecycle event you want to override. I highly recommend [Bob Ziroll](https://twitter.com/bobziroll)’s [free course here](https://scrimba.com/topic/free)
{% endcollapsible %}

Please subscribe to get updates of articles I write and feel free to let me know [on Twitter](https://twitter.com/saamerm) if you have any questions, and don't forget to connect with [me on LinkedIn](https://linkedin.com/in/saamer)!