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-imagev2 がリリース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 の公式発表
