ward abbass
2 min readFeb 26, 2022

--

After 3.5 years of working at Wix, mobile R&D, infrastructure team and as an ex-owner of react-native-navigation, i can shed the light on many issues directly related to the RN architecture (new and old) and indirect stuff that the framework can easily cause bad stuff more than good.

I can list a few, and if you want a full detailed overview we can do it.

(All below is my opinion, i can wrong about something or two but it would be discussable)

Pros:
+ You do get "cross-platform" and native look and feel of an app.
+ JS & TS are easy languages to do stuff.
+ Missing functionality can be written for both stacks (ios and android) via modules.
+ Can be more pros but i listed what i think is a main thing in RN.

Cons:
- A lot, and i mean A LOT of moving parts.
- Performance wise, no RN app is performant even on iphone 13 that is compared to native or flutter, due to bridge or even the non documented non standardized API that is called JSI, or TurboModules, which is not synchronous as they are talking about it, it is more making serialization and deserialization faster. Test case, Implement infinite list of items that have images or for benchmark, a gallery grid. I can talk about performance in many aspects but lets stick to this for now.
- React itself and the by products of it, like using babel (moving part), redux and other state managment that can do harm more than good, a whole lot of untrustworthy npm packages and more.
- Upgrading hell, you stuck doing manual labor to re stabilize a large project just to get it running.
- Hooks, which a little amount of devs knows how to use and mostly they got abused.
- JS is single threaded, you can’t separate business logic in order to not trash the js thread.
- FB dont do good Open source stuff.
- from insider at FB, they use RN to replace settings or about screens from being webviews to RN, and about serious stuff like the FB timeline or instagram they wont even consider RN.
- RN has been around quite a while, they are not stable, and serious companies moved away, those who stuck using it, either they have army of React or JS web devs or they dont have the work force to move to proper framework like native or even flutter i can say.
- The time devs spend on doing manual labor + figuring out why the heck the app is slow, can be utilized to learn native and do it i native, there are a lot of options out there.

--

--