In the Q1 of 2020 Shopify announced that they will go ahead building all of their new mobile apps using React Native.
Should we pay attention to it? I think yes.
Let’s investigate why they’ve taken such strategy, and what are common practices of new tech adoptions in the company.
Engineering culture at Shopify
It seems that Shopify has an early adopter principle in its core.
What is the idea behind it?
They build really specific expertise in a set of deep technologies by becoming core contributors. Next, they experiment a lot. In the end they are adopting a few perspective technologies, to build a core engineering upon them.
When we do adopt early languages or frameworks, we make a calculated bet. And instead of shying away from the risk, we meticulously research, explore and evaluate such risks based on our unique set of conditions. As is often within risky areas, the unexplored opportunities are hidden.https://engineering.shopify.com/blogs/engineering/react-native-future-mobile-shopify
The basics of these taking risk strategies were started by Tobias Lütke, the CEO, who was one of the first core contributors of Ruby on Rails in 2004. This guy still has a github history, being a contributor in some of the Shopify services. That’s awesome.
Being an early adopter of Ruby on Rails, they had massive pros:
By using Ruby on Rails, the team was able to build faster and attract a different set of talent by using something more modern and with a higher level of abstraction than traditional programming languages and frameworks.Farhan Thawar, VP Engineering for Channels and Mobile at Shopify
Shopify collaboration with Google Cloud
The same thing happened in 2018 when Shopify decided to be one of the first early cloud contenders of GCP. During this stage, they’ve migrated over 50% of Shopify data center workloads to Google Cloud.
Back in 2015, Facebook’ve announced React Native, and that year Shopify decided to try it as well. The outcomes were not obvious, but they’ve tried Reactive programming model and GraphQL, and voila, GraphQL now replaces Shopify REST APIs as the best alternative.
Just until this time, Shopify’s core mobile development was built on the native mobile development stack. This year Shopify switches to React Native generally, besides some specific cases and areas, like extra performance or demands for many background threads.
We see the performance curve bending upwards and we can long-term invest in React Native as we do in Ruby, Rails, Kubernetes, and Rich Media.Farhan Thawar, VP Engineering for Channels and Mobile at Shopify
Shopify successful experiments with React Native
Arrive, or Shop, how it called now, was the first experiment to be a complete React Native service. The result of it was in these pros: less crashes on iOS than our native iOS app, an Android version launched, the team composed of mobile and non-mobile developers.
In 2019 they’ve taken Point of Sale service into the complete rewrite process and they’ve successfully launched both iOS and Android versions in 2019.
We see, that Shopify also is successful by taking risks of early adoption with perspective technologies. They do it with not bling eyes, but by passing a series of tests:
- what if technology stops being supported by the core team?
- what if we run into a bug we can’t fix?
- what if the product goes in a direction against our interests?
Now we have a fact, that React Native is a core Shopify technology, as GraphQL too. Shopify is hiring Native engineers and continues to contribute to the core React Native community. It means one more point to React Native as the perspective technology to study.