“The transition from native to React Native didn’t occur in a single day.”
Earlier this 12 months, the cryptocurrency alternate platform Coinbase efficiently migrated its iOS and Android apps to React Native, an open-source cellular utility framework developed by Fb. The framework is usually used to create purposes for Android, Android TV, iOS, macOS, tvOS, Home windows, and so forth.
San Francisco-based Coinbase caters to over 56 million customers, 8K establishments, and 134K ecosystem companions in over 100 international locations. In FY21 Q1, the corporate generated $1.8 billion in income.
Final month, Coinbase customers confronted points logging in and buying and selling as the value of Bitcoin and different cryptocurrencies plummeted. System outages proceed to hang-out most crypto exchanges.
For Coinbase, this meant reimplementing over 200 screens and retraining its 30+ native engineers, alongside delivering product efficiency at every stage of the migration and growing new options on prime of its legacy apps. The under desk reveals the influence evaluation metrics of its migration to React Native from native growth.
Coinbase was based in 2012 by former Airbnb engineer Brian Armstrong and ex-Goldman Sachs dealer Fred Ehrsam. A 12 months later, the corporate began constructing cellular purposes. The primary Android and iOS apps they launched had been native, written in Java and Goal-C.
Again in 2017, Coinbase had a small staff of Android and iOS engineers engaged on these apps. However, regardless of their finest efforts, that they had a tough time scaling.
The corporate stated, whereas its internet engineers noticed notable productiveness beneficial properties, the common cellular engineers’ tempo remained stagnant. “As our scaling efforts continued to present disappointing ends in 2018, it turned clear that we wanted to speed up our fee of progress and velocity of interplay on cellular platforms,” stated Coinbase.
Why React Native?
At Coinbase, options are constructed and maintained by cross-functional groups, usually consisting of two backend engineers and two frontend engineers for every supported platform (internet, Android, and iOS). This association required a lot of engineers to keep up a single vertical of its product. Additionally, engineers had been considerably siloed from different engineers engaged on the identical platform, making it difficult to coordinate bigger, systemic modifications.
The transition helped them to scale back its staff dimension from eight to 5 engineers, the place shopper engineers might work throughout all three platforms (internet, Android and iOS). The corporate stated it had a well-functioning internet engineering platform constructed on React. Coinbase explored a number of cross-platform applied sciences, earlier than zeroing on React Native.
React Native transition
In October 2019, Coinbase released its Professional cellular utility developed within the App Retailer after six months of growing the React Native platform. The corporate noticed optimistic enterprise outcomes, understood efficiency challenges higher, and observed a change in developer productiveness. “It confirmed us that internet engineers might turn out to be efficient React Native builders in a brief span,” stated Coinbase.
Quickly, Coinbase ventured into section 2 — a brownfield rewrite of its onboarding flows. The challenge began in mid-2019 and was launched six months later. Because the onboarding module was in React Native, it was in a position to be shared between the Coinbase and the Professional cellular apps.
The brownfield method bumped into challenges initially. For example, every change to the onboarding module would require rebuilding a bundle, then rebuilding native apps utilizing the shared module to check manually.
This technique was cumbersome and time-consuming, particularly for engineers who solely had internet or native expertise. Iterating on the shared code required an understanding of all three platforms. “It left some engineers — each native and internet — questioning why we had been bothering with React Native in any respect,” stated Coinbase.
Right here’s a timeline of Coinbase’s React Native migration:
Coinbase hung out with Airbnb engineers to be taught from their experiences. “We’re grateful to the staff for sharing the main points of their journey, as the data was invaluable in deciding one of the best path for Coinbase,” stated Coinbase.
The corporate went forward with re-platforming the first Coinbase cellular app. It started rewriting the Android, adopted by rewriting the greenfield as an alternative of taking a brownfield/piecemeal method.
“Based mostly on our personal expertise and classes realized from firms like Airbnb, we concluded that brownfield tasks elevated complexity, launched the danger of getting caught in an in-between state, and created house for extended cultural disagreements between engineers on totally different platforms,” stated Coinbase.
Coinbase rolled out the rewrite as an experiment. Nevertheless, it confirmed a optimistic influence throughout the important thing metrics. In mid-2020, the corporate had about seven Android engineers and 18 iOS engineers engaged on the Coinbase cellular apps. As of at the moment, Coibase’s React Native repo has 113 contributors.
“At present, the shopper groups aren’t absolutely fungible throughout cellular and internet, however we’re getting there,” stated Coinbase. The corporate stated it’s one step nearer to making a single, unified shopper platform for all Coinbase purposes.
As of now, Coinbase has managed to minimise the know-how platforms from three to 2 utility platforms — React Native and React internet, however within the coming months, it seems to be to convey it all the way down to 1.5. The corporate can also be constructing a cross-platform design system utilizing GraphQL.
Be part of Our Telegram Group. Be a part of an interesting on-line neighborhood. Join Here.
Subscribe to our E-newsletter
Get the newest updates and related provides by sharing your e-mail.