Gemcook Tech Blog
🚀

Expo SDK 54 Betaまとめ: iOSビルド爆速化 & Liquid Glass対応など

に公開

はじめに

2025年8月19日にExpo SDK 54のβ版がリリースされました🎉
ベータ期間は2週間とのことです。

https://expo.dev/changelog/sdk-54-beta

今回のSDK 54は、

  • React Native 0.81
  • React 19.1.0

をベースにしており、iOSビルド時間の劇的短縮や、iOS 26の新UI「Liquid Glass」対応など、パフォーマンスとUI/UX両面で大きな進化が入っています。

以下で主要なアップデートをざっくり見ていきます。

主要なリリース内容

iOSビルド時間の爆速化

プリコンパイル済みReact NativeのXCFrameworks

React Native 0.81から、RN本体と依存関係がプリコンパイル済みのXCFrameworksとして配布されるようになりました。

  • RNTesterでのクリーンビルド時間が約120秒 → 10秒に短縮(M4 Maxでの計測)
  • 大規模プロジェクトでは顕著な短縮が期待できる
  • CocoaPodsからSwift Package Managerへの移行に向けた重要なステップ

iOS 26 Liquid Glass対応

新しいIcon Composerサポート

iOS 26で導入されるLiquid Glassアイコンに対応しました。AppleのIcon Composerアプリで作成した.iconファイルをapp.jsonで直接指定できます。

app.json
{
  "ios": {
    "icon": "./assets/app.icon"
  }
}

Liquid Glass モディファイア & Button

Expo UI(今回からβ版)で Liquid Glassエフェクトがサポートされました。SwiftUIライクに使える感じで、モディファイアやButtonバリアントとして提供されています。
個人的には非常に気になっているライブラリなので試してみたいところです。

実装例 (モディファイア)
import { Host, HStack, Text } from "@expo/ui/swift-ui";
import { glassEffect, padding } from '@expo/ui/build/swift-ui/modifiers';

// In your component
<Host matchContents>
  <HStack
    alignment='center'
    modifiers={[
      padding({
        all: 16,
      }),
      glassEffect({
        glass: {
          variant: 'regular',
        },
      }),
    ]}>
    <Text>Regular glass effect</Text>
  </HStack>
</Host>
実装例 (Button)
import { Button, Host, VStack } from "@expo/ui/swift-ui";

// In your component
<Host matchContents>
  <VStack spacing={8}>
    <Button
      variant="glassProminent"
      color="orange"
      systemImage="questionmark.circle"
    >
      Help & support
    </Button>

    <Button variant="glass" systemImage="person">
      View profile
    </Button>
  </VStack>
</Host>

Expo UIに関しては、過去にα版を記事としてまとめているので参考までに。

https://zenn.dev/gemcook/articles/fa0a5831bccf90

Android 16対応とEdge-to-Edgeの強制

Edge-to-Edgeが常に有効

Expo SDK 54ではAndroid 16(API 36)をターゲットとし、Edge-to-Edgeが常に有効になります。これはAndroid 16でEdge-to-Edgeの無効化ができなくなることに対応したものです。

  • react-native-edge-to-edgeexpoパッケージの依存関係ではなくなりました
  • プロジェクトで使用している場合は直接依存関係として追加する必要があります
  • androidNavigationBar.enforceContrastプロパティで同等の設定が可能

予測的バックジェスチャーがデフォルトで有効

新しいプロジェクトでは予測的バックジェスチャーがデフォルトで有効になります。app.jsonのandroid.predictiveBackGestureEnabledで制御可能です。

Apple TV & Android TVサポート強化

  • Apple TVでの実験的なexpo-dev-clientサポート
  • Android TVでの完全サポート
  • 様々なSDKパッケージでApple TVサポート追加
  • プリコンパイル済みフレームワークによるビルド時間短縮

その他注目ポイント

  • expo-file-system/next → 安定版化
  • expo-sqlite強化: localStorage API互換 / sqlite-vecでRAG AI用途も
  • 新パッケージ
    • expo-app-integrity(アプリ配布の検証)
    • expo-blob(W3C Blob互換API)
    • expo-maps(POIフィルタリングなど新機能)

Expo Updates & EAS Updateの機能強化

ランタイムでのヘッダー上書き
Updateが送信するHTTPヘッダー(チャンネルなど)を、Updates.setUpdateRequestHeadersOverride()でランタイムに上書きできるようになりました。これにより、開発者は従業員をエンドユーザーとは異なるアップデートチャンネルにオプトインさせるなどのパターンを簡単に実装できます。

ダウンロード進行状況の追跡
useUpdates()フックにdownloadProgressプロパティが追加され、アップデート中のアセットダウンロードの進行状況を追跡できます。

カスタムリロード画面
Updates.reloadAsync()がreloadScreenOptionsを受け入れるようになり、アプリの再読み込み中に表示されるUIを開発者が制御できるようになりました。

Legacy Architectureサポート終了のお知らせ

SDK 54はLegacy Architectureをサポートする最終リリースのようです。まだNew Architectureへの対応が済んでいないプロダクトは対応を急いだほうが良さそうです。

  • React Native 0.82では新しいアーキテクチャのオプトアウトが不可能に
  • SDK 55(React Native 0.83)は新しいアーキテクチャのみをサポート予定
  • 現在、SDK 53プロジェクトの75%がEASで新しいアーキテクチャを使用

Expo CLIの改善

インポートスタックトレースがデフォルトでオンになり、AIエージェント(Claude Codeなど)が壊れたインポートを解決することが容易になりました。AIエージェントを意識した改善も入っているのが面白いですね。

デフォルト有効になった機能

  • インポートスタックトレース: 不足モジュールのトレースが簡単に
  • experimentalImportSupport: React CompilerとTree Shakingのサポート向上
  • React Compiler: 新しいプロジェクトでデフォルト有効
  • React Nativeオーナースタック: エラーの発見・修正が簡単に

CSS処理の改善

  • RustベースのlightningcssでCSSを自動プレフィックス
  • browserslistサポート追加
  • autoprefixerの代替として機能

Expo Autolinkingの改善

Expo Autolinkingが、Expoモジュールと同じ方法でReact Nativeライブラリを推移的に自動リンクするようになりました。

  • 推移的自動リンク: React Nativeモジュールの推移的依存関係も自動リンクされるように
  • 依存関係ベースのリンク: expo-module.config.jsonではなく、アプリの直接・ネストした依存関係に従ってリンク
  • 統一された動作: ExpoとReact Nativeモジュール全体で一貫した動作

破壊的変更

JSCサポート削除
React Native 0.81からファーストパーティのJSCサポートが削除されました。利用したい場合はreact-native-community/javascriptcoreを導入する必要があります。

Reanimated v4
Reanimatedがv4にアップデートされ、新しいアーキテクチャ専用となりました。Legacy Architectureを利用する場合やNativewind使用時はv3を継続してください。

Metro内部インポート変更
Metro 0.83から内部コードの参照はmetro/private/...に変更されました。該当ライブラリを使用している場合は更新が必要です。

expo-file-system
デフォルトが新APIに置き換わりました。従来の挙動を維持したい場合はexpo-file-system/legacyを使用してください。

expo-notifications
非推奨関数のエクスポートが削除されました。利用中のコードは最新APIへ移行してください。

まとめ

Expo SDK 54は、

  • iOSビルドが爆速化
  • iOS 26 Liquid Glass対応
  • Updates/EAS Updateの強化
  • Legacy Arch最終サポート

と、開発体験向上にフォーカスしているリリースだと感じました。

個人的には「iOSビルド時間短縮」と「Liquid Glass対応」が特に気になっているのと、Claude CodeのようなAIエージェントを意識した改善があることに昨今のAIトレンドを感じました。
SDK 53はβが終了した1週間後にリリースしていたので、SDK 54の正式リリースはおそらく9月上旬あたりになりそうですね。それまでに一度β版を触ってみようと思います。

Gemcook Tech Blog
Gemcook Tech Blog

Discussion