フレームワーク プログラミング ソフトウェア 公開日 2026.05.15 更新日 2026.09.05

Expo とは何か?React Native のアプリ開発を加速する事実上の標準フレームワーク

Expo は React Native のアプリ開発を 「素の React Native より圧倒的に楽にする」 ためのフレームワーク + SaaS です。Expo SDK / Expo Router / EAS Build / EAS Submit / OTA(Over The Air)更新まで揃い、「素の RN を使うべきか Expo にすべきか」 は事実上 「Expo を選ぶ」 が標準となりました。仕組みと採用判断軸を整理します。

先に要点

  • Expo は React Native のアプリ開発を加速する フレームワーク + クラウドサービス。「素の React Native の面倒な部分(ネイティブビルド・OTA 更新・配布)」 を、「expo」 ベースのテンプレと EAS(Expo Application Services)で肩代わりする。
  • 提供するのは 「Expo SDK(カメラ / 位置情報 / 通知 / センサー等の標準 API)」 「Expo Router(ファイルベースルーティング)」 「EAS Build(クラウドビルド)」 「EAS Submit(ストア提出)」 「EAS Update(OTA)」 など。
  • 素の React Native を選ぶ理由は急速に減っている。React Native 公式の 「Get Started」 ガイドも 「Expo を使ってください」 がデフォルトに変わっており、2026 年現在は 「Expo を使う = React Native の標準ルート」。
  • 本命の使い所は iOS / Android の両対応モバイルアプリ。Web 版も 「Expo for Web」 で対応可能(ただし PWA / SPA 中心の場合は Next.js / Remix のほうが向く)。

Expo って結局何? React Native だけじゃダメなの? 「Expo SDK と Expo Go の関係は?」 ── モバイルアプリを TypeScript で開発する人にとって、Expo は避けて通れない名前です。

ざっくり言うと、Expo は React Native でアプリを作るときに、開発・ビルド・配布のすべての段階を楽にしてくれるフレームワーク + クラウドサービス です。 「 素の React Native」 では、「Xcode を開いて Provisioning Profile を…」 「Android Studio で署名鍵を…」 のような ネイティブ開発の重い部分 を毎回やる必要がありました。Expo はそのほとんどを クラウドビルド と 標準テンプレ で肩代わりしてくれます。

この記事では、2026 年 5 月時点の Expo SDK 50+ をベースに、提供機能・素の RN との違い・EAS の役割・採用判断軸 を整理します。 仕様は活発に変化しているので、最終確認は 公式ドキュメント を見るのが安全です。

Expo が提供する主要機能

Expo の主要機能を1枚で見渡します。

Expo が提供するものの全体像 開発 ビルド 配布 Expo SDK Expo Router Expo Go Development Build EAS Build Continuous Native Generation EAS Submit EAS Update (OTA) 土台:React Native
水色の枠は手元の開発で使う部品、緑の枠は EAS(クラウドサービス)
機能 中身 代表用途
Expo SDK カメラ / 位置 / 通知 / センサー / Auth など標準 API OS 機能アクセス全般
Expo Router ファイルベースルーティング(Next.js 風) 画面遷移とナビゲーション
Expo Go 「 開発用のスマホアプリ」 QR コードで自分の端末ですぐ動かす
Development Build 「 カスタム Expo Go」 をビルドする仕組み ネイティブモジュールを含む実機検証
EAS Build クラウドで iOS / Android ビルド Xcode / Android Studio を持たずビルド
EAS Submit App Store / Play Store への提出代行 ストア提出の手間を削減
EAS Update OTA(Over The Air)アップデート 「 ストア審査なしで JS を差し替え」
Continuous Native Generation 「 ネイティブ部分はビルド時に再生成」 「ios / android」 を git に持たなくていい

「React Native 単体ではない、エコシステム全体を提供するサービス」 という位置づけです。

基本の流れ — 最初の Expo アプリ

「どう動くか」 を最小コードで確認します。

# プロジェクト作成
npx create-expo-app@latest my-app
cd my-app

# 開発サーバ起動
npx expo start
// app/index.tsx
import { Text, View } from 'react-native';

export default function Home() {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>こんにちは Expo!</Text>
    </View>
  );
}

これだけで 自分のスマホで Expo Go アプリを開いて QR を読むと、すぐ動く という体験が成立します。

ホットリロード

「 変更を保存すれば、実機の画面が即時に更新」。Web 開発に近いフィードバックループ。「実機を毎回ビルドし直す」 から解放される。

Expo Go の使い所

「 標準 SDK だけ使う段階」 は Expo Go で十分。「ネイティブモジュール(独自カスタム)」 が要るときは Development Build に切り替える。

Expo Router

「app/」 ディレクトリの構造がそのまま URL / 画面構造。「Next.js を触ったことがあれば違和感ゼロ」。

TypeScript 標準

初期テンプレが TS。「.tsx」 ですべて書ける。React 経験者なら違和感なく入れる。

「数分でスマホ実機にアプリが映る」 のが、Expo を選ぶ最大の体感的価値です。

EAS(Expo Application Services)— クラウドビルドと配布

Expo の真の威力は EAS にあります。ビルドから端末に届くまでの2つの道筋を先に並べます。

ネイティブの変更 JS / アセットの修正 EAS Build EAS Submit ストア審査 EAS Update 審査を待たずに配布次回起動時に反映 ユーザーの端末

EAS Build — ローカルに Xcode / Android Studio がいらない

eas build --platform ios
eas build --platform android

これだけで Mac を持っていなくても、iOS アプリを Expo のクラウドでビルドできます。 「 業務 PC が Windows / Linux で iOS 開発が辛い」 という長年の問題を解消する大きな価値です。

EAS Submit — ストア提出

eas submit --platform ios
eas submit --platform android

App Store Connect / Google Play Console への提出をコマンド1つで行います。「手動で IPA / AAB をアップロードして…」 が消えます。

EAS Update — OTA(Over The Air)

eas update --branch production --message "バグ修正"

「 端末にインストール済みのアプリの JS バンドルを、ストア審査なしで更新」 できます。

用途

「 JS / アセットの小さな修正なら、ストア審査を待たずに即配布」。ユーザーは次回起動時に自動で受け取る。「緊急バグ修正」 で価値が大きい。

制限

「 JS / アセットのみ」。ネイティブコードの変更(新しい SDK バージョン、ネイティブモジュールの追加など)は依然としてストア審査が必要。

ストア規約

「 JS の差し替えはストア規約上 OK」 だが、「アプリの本質を変えるレベルの変更」 はストア審査と矛盾する場合がある。「バグ修正 / 機能の小さな追加」 までを基本ルールに。

ブランチ運用

「 production / staging / preview」 のようにブランチを分けて、「internal テスター向けは別ブランチ」 のような運用ができる。

「OTA は React Native の真の価値」 と言われるくらい、開発速度を変える機能です。

素の React Native との比較

「Expo を使わずに 「素の React Native」 で作るのと、何が違う?」 を表で並べます。

軸 素の React Native Expo
初期セットアップ Xcode + Android Studio 必須 Node + Expo CLI で完結
iOS ビルド Mac 必須 EAS Build(クラウド)で Mac 不要
OTA 更新 別途 CodePush などを設定 EAS Update 標準
ネイティブモジュール追加 「pod install」 + 手動設定 Continuous Native Generation で自動
Expo SDK の使用 個別 npm パッケージで導入 セットで提供
学習コスト ネイティブの知識が必要 React の知識で十分(多くの場合)
主な選び所 ネイティブを深く触る案件 ほぼすべてのモバイル案件

要点は Expo を選ばない理由を探すほうが難しい ことです。 ネイティブの低レベル開発が必要な特殊案件以外、Expo がほぼ常に正解です。

いつ Expo を選ぶか

採用判断の目安を整理します。

向いている

① 新規 iOS / Android アプリ、② Web チームがモバイル開発を始める、③ MVP / スタートアップ初期、④ OTA で迅速にアップデートしたいプロダクト、⑤ Mac を持っていない開発者。

慎重に

① 既存ネイティブコードベース(Swift / Kotlin)が大量にある案件、② React Native のフォークを必要とする特殊要件、③ Bluetooth / USB / ハードウェア連携の濃い案件(「Expo SDK の対応範囲」 を要確認)。

Bare workflow との関係

「 完全にネイティブを触りたい」 場合は 「Bare workflow」 で、「Expo の機能の一部だけ使う」 構成も可能。「Managed → Bare」 への移行も 「expo prebuild」 で柔軟。

Tauri / Flutter との比較

Tauri は 「主にデスクトップ + 軽量モバイル」、Flutter は 「Dart 言語で全 OS UI 統一」、Expo は 「React Native の本流」。「Web チームがモバイル領域に進出する」 ときに最も自然なのが Expo。

「React 経験者が 「モバイルアプリを作ろう」 と思ったときの第一候補」 が Expo です。

どこで詰まりやすいか

便利な反面、現場で踏みやすい注意点もあります。

①Expo SDK 外のネイティブモジュール

「 特殊なネイティブモジュールを使いたい」 ときに、「Expo Go」 では動かなくなる(Development Build に切り替え)。「Expo Go で十分か、Development Build が要るか」 を最初に判断する。

② EAS の料金

「 無料枠を超えるビルド回数 / 時間」 で課金が発生する。「月数回ビルドする小規模個人開発」 なら無料で済む。「大規模 / 高頻度 CI」 では有料プランを最初から見据える。

③ OTA とストア規約

「 OTA で本質的に違うアプリにする」 はストア規約違反。「バグ修正 / 機能追加の小幅な改善」 までを目安に、「大きな機能追加はストア審査も通す」 運用を徹底。

④ プラットフォーム差

「 iOS と Android で挙動が違う」 場面はネイティブ依存の機能で必ず存在する。「実機テスト」 と 「Expo SDK のプラットフォーム別 API ドキュメント」 を常に意識する。

「Web 並みに楽だが、最終はストアに出すモバイルアプリ」 という二面性を理解して運用する必要があります。

AI 時代の Expo

AI 連携の文脈で Expo の価値も上がっています。

AI チャットアプリ

「 LLM API を呼ぶモバイルアプリ」 を最速で立ち上げる選択肢として、Expo は事実上の標準。「数日で MVP」 が現実的。

音声インターフェイス

音声入力 + AI 応答音声出力のような、「音声 AI モバイルアプリ」 では、Expo の標準 SDK と WebRTC 統合が活躍する。

OTA で AI モデルやプロンプトの差し替え

「 AI のプロンプトをチューニング」 のような変更を、ストア審査を待たずに OTA で配布できる。AI プロダクトの改善サイクルを劇的に短くする。

Web / Mobile 共通スタック

「 React + TypeScript で Web は Next.js、モバイルは Expo」 の構成で、「コードベース / ノウハウを共有」 できる。AI 時代の 「小さなチームで多媒体に展開」 と相性◎。

「AI モバイルアプリ」 を作る最短ルートとして、Expo の重要性は2026年現在も上がり続けています。

Expo に関するよくある質問

Q. Expo と React Native の関係は?

A. Expo は React Native の上に乗ったフレームワークです。React Native は 「iOS / Android で React を動かすコア技術」、Expo はその 「周辺の道具一式」 を提供します。React Native 公式の 「Get Started」 でも、初心者には Expo の利用を推奨しています。

Q. Expo を選ぶとロックインされませんか?

A. 軽いです。「expo prebuild」 で 「Bare workflow」 にいつでも移行でき、その時点で 「普通の React Native プロジェクト」 として続けられます。「Expo Go」 と 「EAS」 は便利機能であって必須ではなく、独自にビルドすることも可能です。

Q. EAS Build の料金は?

A. 無料プランで月 30 回ビルド程度(2026 年現在)。Pro プラン以上で並列ビルドや優先キューが付きます。「月数回ビルドする小規模案件」 は無料で十分、「本格運用」 は有料プランで月 $19-99 程度から、というのが目安です。

Q. OTA でできない更新は何ですか?

A. ネイティブコードの変更を伴うものです。具体的には 「Expo SDK のバージョンアップ」 「新しいネイティブモジュールの追加」 「「Info.plist」 / 「AndroidManifest.xml」 の変更」 など。これらはストア審査を通す必要があります。

Q. Expo for Web は使うべきですか?

A. ケースバイケースです。「コードベースを Web / iOS / Android で共有したい」 用途には便利ですが、「Web 専用の SEO 最適化 / SSR 重視のサイト」 では Next.js / Remix のほうが向きます。「モバイルが本命で、おまけで Web」 ならアリ、というのが現実的です。

Q. iOS ビルドに Mac は本当に不要ですか?

A. EAS Build を使えば不要です。クラウドの Mac インスタンスでビルドが実行されます。「手元で実機デバッグ」 する場合も、Expo Go アプリで多くのケースが回るため、Mac がない開発環境でも iOS アプリの開発が現実的になります。

Q. Expo を学ぶ最短ルートは?

A. ① 「npx create-expo-app」 でプロジェクト作成、② スマホに Expo Go を入れて QR で起動、③ 「app/」 にページを足す、④ 簡単な機能(カメラ / 位置情報)を Expo SDK で試す、⑤ EAS Build でビルドしてみる、の5ステップが王道です。「数時間で実機にアプリが映る」 という体験が、Expo の価値を一番強く感じる方法です。

参考リンク

あとで見返すならここで保存

読み終わったあとに残しておきたい記事は、お気に入りからまとめて辿れます。