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

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

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

先に要点

  • ExpoReact 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 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 にあります。

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 の価値を一番強く感じる方法です。

参考リンク

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

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