可汗學院遷向React Native的利與弊

經過了兩年的時間,可汗學院將他們的iOS和安卓應用從原生應用轉爲了React Native 應用, 學院的工程師 Bryan Clark 對這一決定的利弊發表了自己的看法

可汗學院從2017年開始實驗React Native,旨在降低爲設計、特性和內容上非常相似的兩個應用維護兩個獨立代碼庫的固有成本。

除了要重複做一些工作之外,不同的代碼庫意味着在添加新特性或更改現有特性時,開發人員之間的溝通更加複雜。此外,兩個底層SDK決定了不同的架構選擇,這些疊加在一起使兩個應用程序在功能上保持一致變得更加複雜。

就像 沃爾瑪的React Native 的遷移經歷一樣,可汗學院選擇了一個漸進式轉換,即使用React Native重新實現兩個現有原生應用的選定特性。例如,可汗工程師從Search選項卡開始,圍繞它搭建了一個橋接,這樣它就可以與原生組件(包括網絡、業務邏輯等)共存並交換數據。他們最開始的一步是 將他們的iOS和Android代碼庫轉移到monorepo上,目的是讓開發對兩個平臺都通知的JS原生橋接變得更容易。

據 Clark 所說,這一階段持續了一年多,而且經歷了許多困難,因爲工程師們必須不斷地在兩個不同的技術棧之間切換。當他們最終可以將內容數據庫轉移到JavaScript時,他們就可以開始擺脫現有的原生代碼,直到他們的應用程序現在幾乎完全React Native化爲止。

與沃爾瑪的情況一樣,啓用這一漸進方法的關鍵決策是針對內容屏幕使用React Native,並使用原生導航在本機視圖或活動和React Native屏幕之間移動。可汗的工程師開發了他們自己的橋接,並沒有嘗試使用 Electrode native,後者是沃爾瑪開發的,目的是簡化React Native組件與現有原生應用的集成。

在 Clark 看來,React Native有很多好處。例如,他說其UI框架感覺比UIKit有更高的一致性:

例如,你針對UICollectionView寫的代碼不同於UITableView,也不同於UIStackView,但在React Native中,你根本不需要擔心這一點。

Clark還提到Visual Studio Code對提高工作效率有很大的幫助,這要歸功於它的代碼生成器和自動修復程序,這有助於在整個團隊中強制實施通用的編程風格。

另一方面,遷移到通用的基於JS的代碼庫也簡化了國際化和本地化,這使得可汗學院應用可以毫不費力地將6個支持地區變爲19個。

Clark說,總體來說,React Native是一款有效的工具,它可以讓不擅長任何一種移動平臺的程序員創建出令人歎服的移動應用。

如果你有興趣瞭解可汗學院React Native之旅的全部細節,不要錯過 Clark 的文章。

原文鏈接:

Pros and Cons of Migrating to React Native at Khan Academy

譯者簡介:

冬雨,小小技術宅一枚,從事研發過程改進及質量改進方面的工作,關注編程、軟件工程、敏捷、DevOps、雲計算等領域,非常樂意將國外新鮮的IT資訊和深度技術文章翻譯分享給大家,已翻譯出版《 深入敏捷測試 》、《 持續交付實戰 》。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章