先に要点
- 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 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 標準
初期テンプレが 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 応答音声出力のような、「音声 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 の上に乗ったフレームワークです。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 の価値を一番強く感じる方法です。