Airbnb switched away from React Native at a time when a lot of other high-profile companies did as well and wrote technical blog articles about it. Discord was one of the few dissenters:
The way Discord tamed React Native was writing its chat view entirely native. This is the area in which users probably spend 99% of their time. Similarly, in the Facebook and Instagram apps, React Native is banned from the home timelines and other areas where performance matters.
Recently Discord finally ported their Android app over. Even if you separate the "change is bad" factor, many users report it's quite laggy and a major regression from their previous native version.
I find it funny when people cite high profile companies as success stories without having a benchmark for failure. "The users didn't abandon the product in droves" is a very low bar when you have externalities that would prevent them from leaving even if they wanted to. You could find the Amazon app total garbage, but just how bad does it have to be to pass on free two day shipping?
Discord on Android has absolutely taken a step backward since the shift. Just a little bit in UX/I (text input is larger than it used to be and doesn't scale with any appearance settings), but significantly in assigning messages to the correct person. Many a time in the past few weeks where a chunk of my messages in a DM get attributed to the other person after a minute or two, presumably due to some sync issue. I ain't impressed.
React Native has two kinds of proponents: managers who don't want to deal with expensive mobile engineers and frontend web developers who don't want to learn mobile engineering.
It's labor-saving and over-engineering combined into one seemingly respectable package. And I'm saying this as a manager and a former web developer.
Flutter seems to have more respect for the craft of mobile engineering, which alienates managers and developers looking for an easy fix for their jobs and their careers.
I sometimes wonder if all these independent companies who appear to make coordinated technical decisions are just hitting the same frustrations at the same time, or if engineers just read each other's blogs and and then pitch the blog ideas at their meetings. And then write a blog about it, which other engineers at other companies read and pitch at their meeting. So basically it becomes a self-perpetuating meme.
> So basically it becomes a self-perpetuating meme.
Sometimes many people in different places have had concerns, or ideas for a better way forward, for some time but have either but spoken up or have had the "everyone else seems to be dealing with it" reaction.
In such cases it takes a certain critical mass of information supporting the change to get movement, that critical mass builds slowly but once it is reached the immediate reaction can appear explosive, and there are sometimes aftershocks back & forth, much like an earthquake caused by plate movement.
So while there is some self fulfilling chain reaction feeding into it, there is usually some true need involved for a lot of the teams concerned.
I’ve worked on several projects with relatively new web/mobile tech and the line: “Here’s how we solved it at my previous company” or “Here’s how [similar size, well marketed company] is doing it” is extremely persuasive to management and fellow engineers as it de-risks the situation.
By the time the new idea has its new problems, the company you followed (or one similar) has probably already posted about solving it, or shared a newer new idea you can try.
Most companies tend to have some development "thought leaders" that propose big shifts like this (and use some politicking to advocate their views), and sometimes the "big thing" ends up working, and sometimes it ends up being a disaster.
https://news.ycombinator.com/item?id=17619609
Looks like they're doubling-down further still:
https://news.ycombinator.com/item?id=32310392
Looks like Shopify also picked up RN:
https://news.ycombinator.com/item?id=22181873