Expo 52
目次

Expo SDK 52 の新機能と変更点
Expo SDK 52 がリリースされました!このバージョンには React Native 0.76 が含まれており、多くの機能強化や変更が行われています。特に、新しいアーキテクチャがデフォルトで有効になった点が大きな特徴です。本記事では、変更点をわかりやすく解説します。
🔹 全般的な変更
- 新しいアーキテクチャがデフォルトで有効に(
app.json
のnewArchEnabled: true
)- 新規プロジェクト (
npx create-expo-app
) では有効化済み - 既存プロジェクトはオプションで有効化可能
- Expo SDK 53 では オプトアウトが必要になる可能性
- Expo Go は新しいアーキテクチャのみをサポート
- 問題がある場合は
newArchEnabled: false
に設定し、開発ビルドを作成
- 新規プロジェクト (
- iOS の最小サポートバージョンが 13.4 → 15.1 に変更
- Android の
minSdkVersion
が 23 → 24、compileSdkVersion
が 34 → 35 に更新 expo-video
が安定版としてリリースexpo-av
からの移行が推奨- ピクチャーインピクチャー などの機能を追加
expo-audio
がベータ版としてリリースexpo-file-system/next
がベータ版としてリリースSharedObjects
やファイルハンドルをサポート
expo-camera
の改善- Swift Concurrency の導入で設定の信頼性向上
- 新しい
expo-live-photo
- iOS Live Photos の再生が可能に
expo-image
v2 がリリースuseImage
フックで事前にメモリへプリロード可能
import { useImage, Image } from 'expo-image'; import { Text } from 'react-native'; export default function MyImage() { const image = useImage('https://picsum.photos/1000/800', { maxWidth: 800, onError(error) { console.error('Loading failed:', error.message); }, }); return image ? ( <Image source={image} style={{ width: image.width / 2, height: image.height / 2 }} /> ) : ( <Text>Image is loading...</Text> ); }
📌 Expo Modules API の改善
SharedObject
のメモリ管理強化ExpoAppDelegateSubscriberProtocol
にcustomizeRootView
を追加- 新しいイベント API
useEvent
とuseEventListener
EventEmitter
が C++ 実装へ移行expo-sqlite
に SQLCipher サポート追加expo-sqlite/kv-store
(キーバリューストア API)を提供AsyncStorage
互換ながら 同期 API も利用可能
expo-notifications
の改善- アプリ終了時もバックグラウンドタスクを実行
- iOS 18 の色付きアイコンのサポート
expo-calendar
からカレンダーフォームシートを起動可能expo/fetch
が WinterCG 準拠の Fetch API を提供- React Navigation v7 のサポート
- Expo Router を使用している場合は自動的にアップグレード
- React Native DevTools の導入
- SDK 47 の JavaScript デバッガーに代わるもの
🖥 Expo CLI の改善
- ユニバーサル Tree Shaking の実験的サポート
- 未使用の ESM インポート/エクスポートを削除
- Metro の解決速度が最大 15 倍向上
- React Compiler の実験的サポート
- iOS
run
コマンドに新フラグ追加 - pnpm モノレポの自動サポート
- CSS モジュールのインポートが改善
- Expo CLI のサイズ削減
- Android/iOS
run
コマンドの Eager builds サポート
🚀 Expo Application Services(EAS)の改善
- EAS Build の iOS ワーカイメージを macOS 14.6 & Xcode 16.1 に更新
- 新しい "Bundle JavaScript" ビルドステップを追加
- JS エラーを早期検出
- EAS Update ダッシュボードの改善
❌ 非推奨・削除
- Expo Go でのプッシュ通知は SDK 53 以降非対応
- Google Maps は Android 版 Expo Go で非対応
expo-sqlite
の CRSQLite サポートが非推奨expo-av
の Video API はexpo-video
に置き換え- Android 版 Expo Go は
Pedometer
をサポートしなくなる expo-camera/legacy
,expo-sqlite/legacy
,expo-barcode-scanner
の削除app.json
のprivacy
フィールドの削除create-react-native-app
のサポート終了expo-router
のnavigate
メソッドの動作変更expo-splash-screen
の Android フルスクリーン画像のサポート終了
⚠ アップグレード手順
1️⃣ Expo CLI の更新
npm i -g eas-cli
2️⃣ Expo SDK 52 へのアップグレード
npx expo install expo@^52.0.0 --fix
3️⃣ 依存関係の確認
npx expo-doctor@latest
4️⃣ アプリの変更を確認
expo-av
からexpo-video
へ移行expo-sqlite
の CRSQLite を非推奨に変更expo-router
のnavigate
の動作変更を考慮expo-camera/legacy
の削除に対応
5️⃣ Xcode のアップデート
- iOS の
minVersion
が 15.1 になったため、Xcode 15 以上が必要
6️⃣ アプリのビルド
eas build --profile development --platform all
🎉 まとめ
Expo SDK 52 は 新しいアーキテクチャがデフォルト化 され、パフォーマンス向上や機能追加 が多数含まれています。expo-video
や expo-audio
などの新ライブラリが充実し、開発体験が大幅に向上しました。
✅ 今すぐ試す
npx create-expo-app my-app cd my-app npx expo start
📌 詳細なドキュメント Expo SDK 52 の公式発表