💡

【世界一わかりやすい】Expo Go / EAS Build / expo-dev-client の違いを解説

に公開

React Native × Expo を始めると必ず出てくる
「Expo Go」「EAS Build」「expo-dev-client」という3つの用語。

なんやねんそれ。と思ったあなた。

名前が似ていて混乱しやすいですが、役割を理解すると開発フローが一気にクリアになります。
この記事では、初心者にも直感的に理解できるように世界一わかりやすく解説します。

1. Expo Go とは?

👉 「公式で配布されている試す用アプリ」

  • App Store / Google Play からダウンロード可能
  • ターミナルで npx expo start → 出てきたQRコードを読み取ると即実機で動く
  • ネイティブコードを一切ビルドせずに済む
  • 制約あり(Expo Go に最初から入っているネイティブモジュールしか使えない)

まとめると

  • 超お手軽、学習・プロトタイプに最適
  • カスタムネイティブライブラリは使えない

2. EAS Build とは?

👉 「クラウドで本番アプリをビルドしてくれるサービス」

  • Expo Application Services の1つ
  • eas build --platform ios などで、Expoのサーバー上でIPA / AABを生成
  • TestFlight / Play Store にそのままアップできる
  • prebuild + Config Plugin を使えば、ネイティブコードを含むカスタムアプリもOK

まとめると

  • 実際に配布・リリースするために必須
  • CI/CDにも組み込みやすい
  • 即時のプレビュー用途には向かない

3. expo-dev-client とは?

👉 「自分専用の Expo Go を作れるライブラリ」

  • expo-dev-client を導入して、一度 EAS Build でビルド
  • 出来上がったアプリは Expo Goと同じようにQRコードでホットリロードできる
  • でも中身には自分が組み込んだネイティブモジュールも含められる

まとめると

  • Expo Go の快適さ + 自由にネイティブ追加
  • 開発中にカスタムコードを使いたい時の必須ツール
  • 初期セットアップに一度ビルドが必要

使い分けのベストプラクティス

  • 学習・試作段階 → Expo Go
  • ネイティブコードを使いたい開発中 → expo-dev-client
  • テスト配布 / 本番リリース → EAS Build

まとめ

  • Expo Go = お試し用。速いけど制約あり。
  • expo-dev-client = 開発用。自分専用のExpo Goを作れる。
  • EAS Build = 配布用。クラウドで本番アプリを生成。

この3つの違いを押さえると、Expoを使った開発フローが頭にスッと入ります。
「どのタイミングでどれを使うか」を意識することで、開発のつまずきが激減します。

最後まで読んでいただきありがとうございます。

Discussion