logo
Published on

React Native專案建立方式

Authors
  • avatar
    Name
    Eddy Chang
    Twitter

前言

自從 Create React Native App(CRNA) 這個專案在 2018 年 9 月宣布棄用,與 Expo 工具合併後,建立 React Native 專案的方式,又變得有點不太一樣。未來有可能還會再變動。

方式一: 使用 Expo CLI

說明

Expo CLI 命令列工具是最簡單的方式,也是目前 React Native 官方網站中,推薦入門開發者使用的方式。使用時同時可以到 expo.io 網站註冊一個帳號,這雖然不一定是必要的,但可以在開發時有一些協助的功能。

優點:

  • 開發過程相對簡單,電腦上也不需要安裝 Android Studio 或 Xcode
  • 已內建許多常用的模組與套件,不需要到處找與測試合適的套件

缺點:

  • 無法使用需要執行react-native link才能安裝的套件
  • 以 Expo 建立的專案,編譯後會多佔掉一些空間

步驟

使用 npm 或 yarn 安裝 Expo CLI:

npm install -g expo-cli

使用 Expo CLI 建立新的專案:

expo init my-app

使用 Expo CLI 啟動專案:

expo start

App 執行的部份,可以使用實體手機,安裝 Expo 所提供的 App,在同一網路區域中即可執行。也可以使用電腦中安裝的手機模擬器。

Expo CLI 還有其它相關操作的指令,請參考這裡的說明, v32.0.0

注意建立專案時的選項,不要選用有實驗性質(experimental)字詞的,用這些選項建立出來的專案,可能會有後續的很多問題。

方式二: 使用 Expo CLI 建立專案,然後 eject

說明

以原本 Expo CLI 來建立新的專案,但為了要使用自訂的套件,通常是為了某些需要以react-native link才能安裝使用的套件。

這種方式仍然可以使用 Expo CLI 的發佈功能,以及大部份的、內建的 Expo SDK。不過會無法再使用某一些 Expo 所提供的內建功能(例如 push notification(推播通知)),詳請請見Ejecting to ExpoKit的詳細說明。

最重要的一點,電腦中必需要安裝 Android Studio 或 Xcode,App 需要這兩個開發工具來進行編譯才能執行。

步驟

建立專案的方式與第一個方式相同,建立後使用以下命令作 eject:

expo eject

執行時需要先啟動專案,和之前一樣。這是作為類似開發伺服器的地位:

expo start

至於 App 執行部份,需要用 Android Studio 或 Xcode 開啟專案中的對應目錄(android 或 ios),然後進行打包(build)與執行。

註: 實際上要花一些時間調整執行環境,例如 ios 部份需要額外安裝 CocoaPods,以及執行pod install,而 android 的部份相對簡單。請參考Developing With ExpoKit這裡的說明。

方式三: 使用 React Native CLI

說明

這個方式是完全使用 React Native CLI 來建立、執行專案,環境建置過程較為麻煩。電腦中需要先安裝好 Android Studio 或 Xcode 執行環境。

這個方式比較適合已經對於 Android Studio 或 Xcode 熟悉的開發者。它是一種最原始的建立 React Native 專案的方式,要搭配的套件都需要額外去尋找和安裝。這種方式並不適合入門開發者。

步驟

參考官網的 Getting Started的說明。

方式四: 其它專案樣版

說明

ignite 很像上面第三種方式的擴充加強版,它有包裝一些模組(稱為外掛,大約 20 套)到建立的專案中,也有提供一些專案不同的樣版可以選擇。執行時仍然是與第三種方式相同的方式來執行。

因此,像 ignite 也不適合初學者使用,雖然它內附了不少常用的模組和第三方函式庫工具,對於熟悉這些工具的開發者會較為實用,用它可以節省一些安裝這些工具的時間。

目前像這種專案樣版計劃,可能只剩下 ignite 還有在更新,其它的計劃(例如 snowflake 或 pepperoni-app-kit)都沒在更新了,已經很久沒有更新的不要再考慮使用。

步驟

參考Ignite CLI Documentation的說明。