ReactNativeの環境構築
はじめに
ReactNative の環境構築をしたので、備忘録として記事を書きます。
ReactNative はフレームワーク(Expo)を使用しての開発が可能ですが、今回はフレームワークを使用しない方の環境構築手順をまとめます。
手順
- iOS の環境構築
- Android の環境構築
- ReactNative のプロジェクト作成と実行
- デバッグ方法
iOSの環境構築
ReactNative を iOS シミュレータで実行できるように設定を行います。
まずは、Homebrew で Node と Watchman をインストールします。
brew install node
brew install watchman
※ Node のバージョンは18.18以降である必要があるので、バージョンが古い場合はアップデートします。
次に最新版の XCode をインストールします。
XCode のバージョンによっては、過去のコードが動かなく可能性があるため、AppStore からではなく、Apple Developer から特定のバージョンをインストールするようにします。
XCode の Command Line Tools もインストールする必要があります。
Command Line Tools は XCode と一緒にインストールされるはずですが、念の為確認しておきます。
XCode を開き、XCode のメニューから Settings... を開き、Command Line Tools がインストールされていることを確認します。
必要があれば、Command Line Tools の最新版をインストールします。
参考:https://reactnative.dev/docs/set-up-your-environment?platform=ios
Androidの環境構築
ReactNative を Android エミュレータで実行できるように設定を行います。
※ 手順で指定しているバージョンの値は ReactNative の更新によって変更している可能性があるので要注意
Android でも Node と Watchman のインストールが必要ですが、iOS の環境構築と同様なため、スキップします。
以下のコマンドで Open JDK を設定します。
brew install --cask zulu@17 // OpenJDKをインストール
brew info --cask zulu@17
echo 'export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home' >> ~/.zshrc // 環境変数を設定
source ~/.zshrc // 環境変数の反映
Android Studio を Android Developers のダウンロードページからダウンロードします。
ダウンロードができたら、Android Studio の settings で
- Android SDK Platform 34
- Intel x86 Atom_64 System ImageまたはGoogle APIs Intel x86 Atom System Imageまたは (Apple M1 Silicon の場合)Google APIs ARM 64 v8a System Image
がインストールされていることを確認します。
インストールがされていない場合、インストールしておきます。
また、SDK Tools タブを選択し、Android SDK Build-Tools で 34.0.0 がインストールされていることを確認します。
次に ReactNative が Android Studio に接続するために必要な環境変数を設定します。
# ~/.zshrc
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
参考:https://reactnative.dev/docs/set-up-your-environment?platform=android
ReactNative のプロジェクト作成と実行
以下のコマンドでプロジェクトを作成します。
npm uninstall -g react-native-cli @react-native-community/cli // 予期しないエラーを防ぐため削除
npx @react-native-community/cli@latest init SampleProject // HogeProjectを作成
プロジェクトが作成されたら、Gemfile を確認し、指定されたバージョンの ruby をインストールします。
asdf でインストールする場合、以下のコマンドを実行します。
asdf plugin list all | grep ruby // ruby のプラグインを表示
asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git // ruby のプラグインをインストール
asdf plugin list // asdf のインストール済みプラグインを表示
asdf list all ruby // ruby のインストール可能なバージョンを表示
asdf install ruby 2.6.10 // ruby のバージョンを指定してインストール
asdf list ruby // ruby のインストール済みのバージョンを表示
asdf global ruby 2.6.10 // ruby 2.6.10 を global に指定
次に bundler でパッケージをインストールします。
gem install bundler // bundler をインストール
cd SampleProject/ // ReactNative プロジェクトに移動
bundle install // パッケージをインストール
次に CocoaPods でパッケージをインストールします。
cd ios // ios ディレクトリに移動
bundle exec pod install // パッケージをインストール
ここまでできたら、package.json の scripts を実行し、アプリを起動します。
npm run start // ReactNative の開発サーバーを起動
npm run ios // iOS シミュレータを起動
npm run android // Android エミュレータを起動
※ 失敗する場合は、コマンドからではなく XCode や Android Studio から実行します。実行が成功すると次回以降はコマンドから実行できるようになります。
参考:https://reactnative.dev/docs/getting-started-without-a-framework
デバッグ手順
React Native DevTools を使ったデバッグ手順をまとめます。
ReactNativeのバージョンが0.76の場合
通常通りアプリを起動します。
npm run start // ReactNativeの開発サーバーを起動
npm run ios // iOS シミュレータを起動
npm run android // Android エミュレータを起動
起動できたら
- iOS シミュレータ:Cmd ⌘ + D もしくは(Device > Shake)
- Android エミュレータ: Cmd ⌘ + M (macOS)
でデバッグメニューを表示し、Open DevTools で DevToolsを起動します。
そして、DevTools の Sources でブレークポイントを使用したり、Console でログを確認し、デバッグを行います。
また、デバッグメニューで Toggle Element Inspector を選択することで、コンポーネントのサイズを確認することができます。
ReactNativeのバージョンが0.75~0.73の場合
以下のコマンドでデバッグ用のアプリを起動します。
npx react-native start --experimental-debugger // ReactNativeのデバッグサーバーを起動
npm run ios // iOS シミュレータを起動
npm run android // Android エミュレータを起動
起動できたらバージョン0.76と同じく
- iOS シミュレータ:Cmd ⌘ + D もしくは(Device > Shake)
- Android エミュレータ: Cmd ⌘ + M (macOS)
でデバッグメニューを表示し、Open DevTools で DevToolsを起動します。
※ Sources でファイルが表示されない場合は、Cmd ⌘ + P でファイルを検索することができます。
参考:https://reactnative.dev/docs/debugging
おわりに
今回、ReactNative の環境構築からデバッグ手順までまとめました。
ReactNative のドキュメントでは、フレームワーク(Expo)が推奨されていたり、デバッグ方法もいくつかあったりし、少し分かりづらく感じました。
この記事では Expo を使用しない方法での環境構築手順をまとめたので、同じように Expo なしで環境構築している方へ参考になれば幸いです。