手機應用

用 React Native 開發時,3 個常見的困難與解法

選用 React Native 做開發有很多好處,不過也常常卡在一些莫名其妙的坑。如果是純技術的問題或許可以從 stackoverflow 等地方找到相關討論,但也有些問題不太容易找到真正解法。

這時候就很考驗對整個框架及專案的掌握度,本篇文章將分享三個常見的問題以及建議的做法。

 

一、作業系統升級後常常有問題,該怎麼管理 React Native 版本?

這是個蠻常見的問題,尤其在近期 osx 常常有更版的情況下,一升級就無法正確啟動的慘劇時有所聞。更糟糕的是這些問題通常牽連甚廣,你也不容易快速找到解法。如果發生在你趕專案的時候,就真的是欲哭無淚。

React Native 的系統架構注定了他的相依性極為複雜,原因來自於:

  • 開發工具 – OSX / Windows / Linux 版本
  • 目標平台 – Android / iOS 版本
  • 相關套件 – node / cocopod / …

所以適度管理你的開發環境非常重要。

建議做法是:

  1. 在每次升版之前將 node 版本、packag.json 等資訊紀錄好
  2. 避免在重大發版前進行升級,新版出現後最好是等個十天半個月再說
  3. 升版時如果會擔心不明原因的相沖,可以考慮手動複製檔案不一定要用官方的工具升級

 

二、套件這麼多該如何挑選?

React Native 有完整的開發生態社群(如 react native comminity),再加上其來脫胎自 Web 體系,通常在模組挑選上面對的不是沒有人做過而是類似的模組太多。

如果挑的不好除了未必能達到想做的事之外,甚至可能對穩定性及後來的開發造成困擾。

在這裡我們列幾個原則供您參考:

  1. 套件健康度
    這個部分可以從專案的 star 數量、作者的專案數以及最後一個 commit  的時間是否離現在過久來觀察
  2. 套件來源
    如果專案的來源是來自比較大的 organization,如 react-native-commnunity 之類,可信度及穩定度就會比較高
  3. 程式碼品質
    這個部分就必較難評斷,但為了確保萬一有意外自己還能維護,建議開幾隻檔案起來看一下感覺

當然也可以參考像 expo 這些平台提供的建議,可以少走很多彎路。

 

三、功能到底該做在 Javascript 層還是 Native 層?

這是一個大哉問,有些時候難免需要撰寫 native module。但同一個功能我們應該實作在 javascript 層還是 native 層呢?

下圖是 React Native 的架構圖,我們可以發現整體架構其實非常複雜。
是以對於複雜的邏輯開發,我會建議大家可以盡量在 js 層處理,這樣一來可以沿用如 chrome debugger 等工具協助開發,Native 層盡量單純,這樣對於雙邊的測試會比較方便。

當然這個問題沒有一定的標準答案,某知名的加密硬體產品公司就選擇將一些需要隱藏的部分放在 native 層。這裡就真的很看當下的需求跟考量了。

 

總結

這篇文章我們分享了三個蠻重要的開發原則,更多的部份也可以參考我們的課程 – React Native 開發雙平台

 

一同補給 React Native 能力

最新 React Native 技術|打造雙平台電商 App

沒有開發過 App 也沒問題!這門課會從多個實作練習中,帶你學會 React Natvie 語法,也會帶你複習 JavaScript 及 React 基本觀念!

▍透過實作練習React Natvie

✔️ 計算機 App:學會排版
✔️ 公共設施查詢 App:掌握 12 種業界常見 Component
✔️ 藝文活動查詢 App:學會換頁
✔️ 天氣預報 App:學會製作動畫
✔️ 電商 App:學會串金流+上架雙平台

👉現在就去看課程👈

 

Facebook Comments