Categories
程式開發

Shopify將移動開發轉向React Native,性能提升翻倍、超95%跨平台代碼共享


對React Native進行了一年的實驗後,Shopify表示將會使用它來進行未來移動應用的開發。根據報導,React Native所帶來的收益是成倍的性能提升和超過95%的跨平台代碼共享。

Shopify是在收購Tictail之後開始其React Native之旅的,Tictail是一家專注React Native的公司。 Shopify背後的另外一個驅動因素是他們已經在其Web產品中廣泛使用React了。因此,探索將React模型進一步擴展至移動應用的可能性也就是很自然的事情了。在2019年,有三個團隊分別開發了三個不同的應用程序,即ArrivePoint of SaleCompass。 Arrive是一個針對消費者的訂單跟踪工具,有數百萬的下載,而Point of Sale和Compass的目標則是賣家。

Arrive之前只能用於iOS,在使用React Native重寫之後,就使提供Android版本也成為可能,而且這個過程幾乎不消耗任何成本。據Shopify所述,這兩個Arrive版本共享了95%的代碼庫。更讓人驚訝的是,Shopify聲稱與原生的、只支持iOS的版本相比,使用React Native之後降低了應用崩潰的頻率。為了闡述基於JavaScript的應用的靈活性,Arrive包含一種特殊的機制,我們可以掃描與GitHub pullrequest相關聯的一個二維碼,這樣的話應用的bundle會自動更新至該PR相關的代碼

在Point of Sale中,Shopify只使用React Native來創建應用的Android版本,而將iOS版本的應用繼續留給了原來的團隊。通過讓這兩個版本相互獨立,Shopify希望能夠對比原生iOS技術與Android上React Native之間的開發速度,同時還能比較React Native版本與原生iOS應用之間的性能。 Point of Sale的開發依然還在進行之中,因此目前還沒有詳盡的對比結果。但是,即使在CPU頻率為1.5GHz的設備上,Android版本也表現出了良好的性能。

最後,就是關於Compass,Shopify對比了三個可選方案,分別是原生、Flutter和React Native。他們最終決定使用React Native,在三個月的時間內,他們就發布了該應用的iOS和Android版本,並實現了大約99%的跨平台代碼共享。

Shopify表示,他們會繼續投資React Native,當然這並不意味著他們會用這項新技術重寫所有的應用。還應注意的是,Shopify將繼續使用低層級的原生庫和框架來開發他們的應用程序。當性能需要的時候,他們會考慮使用原生技術編寫低層級組件的可能性。尤其是,必須要在較舊的硬件上運行的組件(CPU頻率低於1.5GHz),或者執行CPU密集型處理的組件,它們需要最高的性能,或者會使用大量的後台線程。

原文鏈接:

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