Five years into their journey with React Native, Shopify’s mobile team has shared a wealth of insights from their experience–highlighting what worked, what didn’t, and what lies ahead.
Overall, Shopify engineers’ experience with React Native has revealed several bright spots, says Spotify’s Mustafa Ali. One of the most encouraging findings is that React Native apps can meet stringeng performance requirements–though, as Ali notes, there’s no hidden magic involved and success depends on applying the right patterns effectively.
We’ve achieved sub-500ms (P75) screen loads in the Shopify app […]. Just like native, you have to apply good patterns and techniques to eliminate performance bottlenecks.
One React Native feature that significantly accelerated development was hot reloading, which reduced the time to preview UI changes from several minutes to nearly instant feedback.
This wastes time and breaks developer flow. React Native’s hot reloading completely eliminates this problem.
Still on the positive side, Ali believes that using TypeScript offers another major advantage, providing both flexibility and robustness and improving leverage by sharing code between web and mobile.
Having developers who can work on multiple platforms is incredibly valuable. It allows us to ship faster and enables developers to take good ideas from one technology and apply them to another in novel ways.
So far, Ali’s perspective aligns with the commonly recognized benefits of React Native. However, he also shares insights that are less obvious—such as the critical role of blending React Native with native code. This is especially important for features that leverage device hardware, have memory limitations like home and lock-screen widgets, and long-running jobs.
We’ve found that you can save a ton of time by building most features just once using RN and then leverage native for things it is best suited for. This is also why having native expertise on the team is crucial.
This point is echoed by several commenters on Hacker News who noted that a common misconception about React Native apps is that it allows web developers to easily create mobile apps. Instead, a more accurate perspective is that “React Native is a tool for mobile developers to not write the same app twice”, not a shortcut for them to skip learning native.
On the downside, Ali points out that React Native comes with a few drawbacks that shouldn’t be overlooked. For starters, debugging tends to be more difficult and less streamlined compared to the tools available in Xcode and Android Studio. More concerning, though, is that each React Native update often demands substantial effort—sometimes even requiring codebase restructuring.
We have mitigated this by having a small group of rotating developers handle it while the rest of the team focuses on feature development.
Another weak point of React Native–based projects is their reliance on third-party libraries. While these are widely available, they come with the burden of ongoing maintenance and the risk of supply chain attacks.
While Shopify’s experience with React Native has been productive so far, some commenters on Hacker News pointed out that their app feels low quality in some aspects. One commenter mentioned that React Native []”works, especially while iterating on things, but it makes the final 20% of work much harder than it already was”](https://news.ycombinator.com/item?id=42729069). Others emphasized Flutter’s superiority in terms of tooling and performance, though they also pointed out that Flutter apps “do not look quite right” because they rely on non-native components.
Shopify’s engagment with React native is set to grow in the future, says Ali, with plans for more code contributions, sponsorship of open-source projects, and other initiatives to expand React Native support across organizations. Be sure to check out the original article for a deeper dive into the full details.