OpenAIReact NativeApr 7, 2026, 12:00 AM

React Native 0.85 - New Animation Backend, New Jest Preset Package

A condensed section focused on the key takeaways first.

Original Post

Quick Digest

Summary

A condensed section focused on the key takeaways first.

openaienmodel: gpt-5-mini-2025-08-07

React Native 0.85 — Shared Animation Backend, Jest preset moved, Metro TLS

Key Points

  • New Shared Animation Backend
  • Jest preset moved to @react-native/jest-preset
  • Metro dev server supports TLS

Summary

React Native 0.85 delivers a new Shared Animation Backend (collaboration with Software Mansion) that moves core animation update logic into RN core, enabling native-driver layout/Flexbox animations for Animated and improved performance for Reanimated. The release also extracts the Jest preset into @react-native/jest-preset, adds Metro TLS support, and ships several DevTools improvements and breaking changes. An experimental opt-in channel for the animation backend will be available in 0.85.1.

Key Points

  • New Shared Animation Backend

    • Animation engine now in core; Animated can animate layout/Flexbox/position props with the native driver.
    • Experimental channel available starting in 0.85.1 — opt in per the release docs and test animation libraries (e.g., Reanimated).
  • Jest preset moved

    • Preset extracted to @react-native/jest-preset to reduce core package size and increase flexibility.
    • Update jest.config.js: change preset from 'react-native' to '@react-native/jest-preset'.
  • Metro TLS support

    • Metro dev server accepts a tls config (ca, cert, key) in metro.config.js for HTTPS/WSS during development.
  • DevTools improvements

    • Multiple CDP connections supported, macOS native tab handling, and restored request body previews in Network panel.
  • Breaking changes to act on

    • Dropped support for EOL Node.js versions; require Node >= 20.19.4 (v20 supported).
    • StyleSheet.absoluteFillObject removed — use StyleSheet.absoluteFill or custom styles.
    • Various native API deprecations/removals (see full changelog) — run integration tests for native modules.

Migration / Action items

  • Update jest.config.js:
// before
preset: 'react-native',
// after
preset: '@react-native/jest-preset',
  • Ensure CI and developer machines run Node >= 20.19.4.
  • Replace any uses of StyleSheet.absoluteFillObject with StyleSheet.absoluteFill.
  • If you rely on animation libraries, plan to test against the experimental animation backend in 0.85.1 and coordinate with library maintainers (Reanimated has changes to leverage the backend).
  • To enable HTTPS for Metro, add a tls block in metro.config.js:
// example
config.server.tls = {
  ca: fs.readFileSync('path/to/ca'),
  cert: fs.readFileSync('path/to/cert'),
  key: fs.readFileSync('path/to/key'),
};
  • Run the React Native Upgrade Helper and full test suite; verify native modules for deprecated/removed APIs.

Notes

  • This release bumps Metro and updates Hermes consumption; consult the full changelog for native cleanup and platform-specific deprecations before upgrading.

Full Translation

Translations

A translation section that keeps the flow of the original article.

openaijamodel: gpt-5-mini-2025-08-07

React Native 0.85 — 新しいアニメーションバックエンドと新しい Jest プリセットパッケージ

本日、React Native 0.85 をリリースしました。このリリースには新しい Shared Animation Backend(アニメーションバックエンド)の導入、Jest プリセットの専用パッケージへの移動、その他多くの改善と修正が含まれます。

ハイライト

  • 新しい Animation Backend
  • React Native DevTools の改善
  • Metro の TLS サポート

主な変更点

  • Jest プリセットが新しいパッケージへ移動
  • EOL(サポート終了)となった Node.js バージョンのサポートを削除
  • StyleSheet.absoluteFillObject の削除

新しいアニメーションバックエンド

React Native 0.85 では、Software Mansion と協力して構築された新しい Shared Animation Backend を導入しました。これは Animated と Reanimated 両方の内部でアニメーションがどのように適用されるかを担う新しいエンジンです。

アニメーションの主要な更新ロジックを React Native コアに移行することで、Reanimated はこれまで不可能だったパフォーマンス向上を実現でき、更新の調停(reconciliation)プロセスが適切にテストされ、今後の RN アップデートでも安定して保たれることが期待できます。

Animated では、以前は制約があったネイティブドライバーによるレイアウトプロパティのアニメーションが可能になりました(旧制約はもはや適用されません)。

  • iOS、Android の両方で利用可能
  • 追加の例は react-native/packages/rn-tester/js/examples/AnimationBackend/ にあります

info: この実験的機能は React Native 0.85.1 から利用可能になります。0.85.1 は近日公開予定です。

レイアウトプロパティをアニメートする方法

新しいアニメーションバックエンドにより、Animated で Flexbox や位置プロパティを useNativeDriver でアニメートできます。

import { Animated, Button, View, useAnimatedValue, } from 'react-native';
function MyComponent() {
    const width = useAnimatedValue(100);
    const toggle = () => {
        Animated.timing(width, {
            toValue: 300,
            duration: 500,
            useNativeDriver: true,
        }).start();
    };
    return (
        <View style={{ flex: 1 }}>
            <Animated.View style={{ width, height: 100, backgroundColor: 'blue' }} />
            <Button title="Expand" onPress={toggle} />
        </View>
    );
}

実験的チャンネルの有効化方法はこのページで説明されています。

React Native DevTools の改善

  • 複数の CDP 接続: React Native は複数の同時 Chrome DevTools Protocol 接続をサポートするようになりました。これにより、React Native DevTools、VS Code、AI エージェントなどのクライアントが同時に接続でき、セッションが予期せず終了することなくリッチで組み合わせ可能なツールワークフローが可能になります。
  • macOS のネイティブタブ: デスクトップアプリを macOS 26 向けにコンパイルするよう更新し、システムレベルのタブ操作を有効にしました。複数の DevTools ウィンドウが開いているときは Window > Merge All Windows でアクセスできます。
  • リクエストペイロードのプレビュー: 回帰のために無効になっていた Network パネルのリクエストボディプレビューが Android で復元されました。

Metro TLS サポート

Metro 開発サーバーは TLS 設定オブジェクトを受け付けられるようになり、開発中に HTTPS(および Fast Refresh 用の WSS)を利用できるようになりました。セキュア接続を必須とする API のテストに便利です。metro.config.js に次のように設定します。

// metro.config.js
const fs = require('fs');
config.server.tls = {
    ca: fs.readFileSync('path/to/ca'),
    cert: fs.readFileSync('path/to/cert'),
    key: fs.readFileSync('path/to/key'),
};

ローカル開発向けには、mkcert を使うとブラウザ警告なしでローカルに信頼された証明書を生成できます。

破壊的変更(Breaking Changes)

Jest プリセットが新しいパッケージへ移動

React Native の Jest preset は react-native から @react-native/jest-preset に抽出され、コアパッケージのサイズが削減され、プロジェクト側でのテスト設定の柔軟性が向上しました。jest.config.js を次のように1行変更してください:

// jest.config.js
- preset: 'react-native',
+ preset: '@react-native/jest-preset',

EOL の Node.js バージョンのサポート削除

React Native 0.85 は EOL(サポート終了)となった Node.js バージョンや v20.19.4 より古いリリースをサポート対象外にしました。アップグレード前にサポート対象の Node.js を使用していることを確認してください。

  • Node.js v20 (>=20.19.4) — Supported (Active LTS)
  • Node.js v21 — Not supported (EOL)
  • Node.js v22 — Supported (Active LTS)
  • Node.js v23 — Not supported (EOL)
  • Node.js v24+ — Supported

StyleSheet.absoluteFillObject の削除

非推奨だった StyleSheet.absoluteFillObject API は削除されました。代わりに StyleSheet.absoluteFill を使用するか、自分で絶対位置指定のスタイルを定義してください。

- const styles = StyleSheet.absoluteFillObject;
+ const styles = StyleSheet.absoluteFill;

その他の破壊的変更

全般

  • Pressable が hidden Activity でイベントリスナーをアンマウントしなくなりました。
  • ShadowNode::Shared、ShadowNode::Weak、ShadowNode::Unshared、ShadowNode::ListOfWeak、ShadowNode::ListOfShared、SharedImageManager、ContextContainer::Shared の非推奨の C++ 型エイリアスを削除しました。これらは使用されておらず、利用ライブラリは型を直接使用するべきです。

Android

  • receiveTouches をデフォルトで no-op として RCTEventEmitter に再追加しました。まだこのメソッドを使っているライブラリとの互換性を低減するための修正です。
  • ReactTextUpdate は内部実装となり、直接公開アクセスすべきではありません。
  • レガシーアーキテクチャのクリーンアップとして複数のクラスが非推奨または削除されました:
    • ReactZIndexedViewGroup は非推奨になりました。
    • UIManagerHelper は非推奨になりました。
    • CatalystInstanceImpl は削除されました(以前に非推奨)。
    • NativeViewHierarchyManager は完全にスタブ化されました。

iOS

  • RCTHostRuntimeDelegate は非推奨となり RCTHostDelegate に統合されました。
  • React.XCFramework を使用した場合の重複シンボルエラーを修正しました(fmt を 12.1.0 に上げたことによる修正)。

その他の変更

  • Metro を ^0.84.0 に更新しました。
  • React は Hermes 250829098.0.10 を取り込むよう更新されました。
  • Yoga: Android 側で YogaNode を Kotlin に移行しました。
  • アクセシビリティ: AccessibilityInfo.setAccessibilityFocus は非推奨となり、代わりに AccessibilityInfo.sendAccessibilityEvent を使用してください。
  • TypeScript: 複数のユーティリティ型変換($Values, mixed, $ReadOnly, $ReadOnlyArray)に関する修正。
  • Android ビルド: reactNativeDevServerIp Gradle プロパティで dev server の IP を指定できるようになりました。
  • iOS ビルド: React.XCFramework に clang virtual file system のサポートを追加しました。

謝辞

React Native 0.85 は 58 名のコントリビュータによる 604 件以上のコミットを含みます。皆さんの貢献に感謝します。特に本リリースで重要な貢献をしてくれたコミュニティメンバーに感謝します:

  • Zeya Peng
  • Bartłomiej Błoniarz
  • Dawid Małecki(Animated Backend)
  • Vitali Zaidman(Metro TLS)
  • Moti Zilberman(Multiple CDP Connections)
  • Phil Pluckthun、Alex Hunt(Jest Preset migration)

また、本リリース記事の機能ドキュメント作成に協力した追加の作者の皆様にも感謝します。

0.85 へのアップグレード

info: 0.85 は現在の最新の安定版です。0.82.x は非サポートになります。詳細は React Native のサポートポリシー を参照してください。

アップグレードする際は、既存プロジェクト間でのコード差分を確認するために React Native Upgrade Helper と Upgrading ドキュメントを併用してください。

新しいプロジェクトを作成する場合:

npx @react-native-community/cli@latest init MyProject --version latest

Expo を使用している場合、次の SDK(SDK 56)が React Native 0.85 を含む予定です。