先に要点
- 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 でアプリを作るときに、開発・ビルド・配布のすべての段階を楽にしてくれるフレームワーク + クラウドサービス</strong> です。 素の 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 Router
`app/』 ディレクトリの構造がそのまま URL / 画面構造。`Next.js を触ったことがあれば違和感ゼロ』。
TypeScript 標準
`数分でスマホ実機にアプリが映る』 のが、Expo を選ぶ最大の体感的価値です。
EAS(Expo Application Services)— クラウドビルドと配布
Expo の真の威力は EAS にあります。
EAS Build — ローカルに Xcode / Android Studio がいらない
eas build --platform ios
eas build --platform android
これだけで Mac を持っていなくても、iOS アプリを Expo のクラウドでビルド </strong></strong>できます。 業務 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 応答音声出力のような、`音声 AI モバイルアプリ』 では、Expo の標準 SDK と WebRTC 統合が活躍する。
Web / Mobile 共通スタック
` React + TypeScript で Web は Next.js、モバイルは Expo』 の構成で、`コードベース / ノウハウを共有』 できる。AI 時代の `小さなチームで多媒体に展開』 と相性◎。
`AI モバイルアプリ』 を作る最短ルートとして、Expo の重要性は2026年現在も上がり続けています。
Expo に関するよくある質問
Q. Expo と React Native の関係は?
A. Expo は React Native の上に乗ったフレームワーク』</strong>です。React Native はiOS / Android で React を動かすコア技術』、Expo はその 周辺の道具一式』 を提供します。React Native 公式の Get Started』 でも、初心者には Expo の利用を推奨しています。
Q. Expo を選ぶとロックインされませんか?
A. 軽い』</strong>です。expo prebuild』 で Bare workflow』 にいつでも移行でき、その時点で 普通の React Native プロジェクト』 として続けられます。Expo Go』 と EAS』 は便利機能であって必須ではなく、独自にビルドすることも可能です。
Q. EAS Build の料金は?
A. 無料プランで月 30 回ビルド程度(2026 年現在)。Pro プラン以上で並列ビルドや優先キューが付きます。月数回ビルドする小規模案件』 は無料で十分、本格運用』 は有料プランで月 $19-99 程度から、というのが目安です。
Q. OTA でできない更新は何ですか?
A. ネイティブコードの変更を伴うもの』</strong>です。具体的にはExpo SDK のバージョンアップ』 新しいネイティブモジュールの追加』 ``Info.plist』 / AndroidManifest.xml』 の変更』 など。これらはストア審査を通す必要があります。
Q. Expo for Web は使うべきですか?
A. ケースバイケース』</strong>です。コードベースを Web / iOS / Android で共有したい』 用途には便利ですが、Web 専用の SEO 最適化 / SSR 重視のサイト』 では Next.js / Remix のほうが向きます。モバイルが本命で、おまけで Web』 ならアリ、というのが現実的です。
Q. iOS ビルドに Mac は本当に不要ですか?
A. EAS Build を使えば不要』</strong>です。クラウドの Mac インスタンスでビルドが実行されます。手元で実機デバッグ』 する場合も、Expo Go アプリで多くのケースが回るため、Mac がない開発環境でも iOS アプリの開発が現実的になります。
Q. Expo を学ぶ最短ルートは?
A. ① npx create-expo-app』 でプロジェクト作成、② スマホに Expo Go を入れて QR で起動、③ app/』 にページを足す、④ 簡単な機能(カメラ / 位置情報)を Expo SDK で試す、⑤ EAS Build でビルドしてみる、の5ステップが王道です。`数時間で実機にアプリが映る』 という体験が、Expo の価値を一番強く感じる方法です。