Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News React Native is the Way to Go for Mobile App Development at Shopify

React Native is the Way to Go for Mobile App Development at Shopify

This item in japanese


After a year spent experimenting with React Native, Shopify says it will adopt this framework for future mobile app development. Reported benefits include almost doubled development producticity, and over 95% code sharing across platforms.

Shopify began its journey into React Native after the acquisition of Tictail, a company entirely focused on React Native. Another driving factor behind Shopify's decision was the fact they were already using React extensively across their Web products. It therefore appeared quite natural to explore the possibilities of extending the React model further to their mobile apps. During 2019, three teams started developing three different apps: Arrive, Point of Sale, and Compass. Arrive is basically an order tracking tool for customers, with millions of downloads, while Point of Sale and Compass target sellers.

Using React Native to rewrite Arrive, which was originally available only for iOS, made it possible to launch a version for Android, too, at almost no cost. Indeed, says Shopify, the two Arrive versions shared 95% of their code bases. Even more astounding is that Shopify claim they reduced crash frequency in comparison with the native, iOS-only version of the app. As an example of what is made possible by the flexibility of a JavaScript based app, Arrive includes a mechanism by which you can scan a QR code associated to a GitHub pullrequest to have your app bundle automatically updated with the code from that PR.

In Point of Sale's case, Shopify used React Native only to create an Android version of the app, leaving the iOS app to its original team. By keeping the two versions separate, Shopify aims to both be able to compare development speed using native iOS technology and React Native on Android, as well as compare the performance of the React Native version with the native app for iOS. Development of Point of Sale is still ongoing, and therefore no exhaustive comparison is possible yet. However, the Android version showed good performance even for devices with a CPU clocked at 1.5GHz.

Finally, in Compass' case, the Shopify team compared three options: native, Flutter, and React Native. They eventually decided to go with React Native. They launched the app for iOS and Android in three months' time, and achieved approximately 99% code sharing across the two platforms.

Shopify says they will continue investing in React Native, although this does not mean they will rewrite all of their apps with the new technology. It should also be noted that Shopify will keep using low-level native libraries and frameworks for their apps. They will consider the possibility of writing lower level components using native technologies when performance requires it. In particular, this includes components that have to run on older hardware (CPU clocked at less than 1.5GHz), or those that do CPU-intensive processing, require top performance, or use many background threads.

Rate this Article