ClaudeReact 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.

claudeenmodel: claude-sonnet-4-20250514

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

Key Points

  • New Shared Animation Backend enables layout prop animations with native driver
  • Jest preset extracted to separate @react-native/jest-preset package
  • Metro dev server now supports TLS/HTTPS configuration

Summary

React Native 0.85 introduces a major new Shared Animation Backend built with Software Mansion, moves Jest preset to a dedicated package, and adds Metro TLS support along with DevTools improvements.

Key Points

  • New Animation Backend: Shared Animation Backend enables animating layout props with native driver in Animated API, improving performance for both Animated and Reanimated
  • Jest Preset Migration: Jest preset moved from react-native to @react-native/jest-preset package - requires one-line config update
  • Metro TLS Support: Dev server now supports HTTPS/WSS configuration for secure API testing during development
  • DevTools Enhancements: Multiple CDP connections, native macOS tabs, and restored request payload previews
  • Node.js Requirements: Dropped support for EOL versions, now requires Node.js v20.19.4+ or v22+
  • Breaking Changes: StyleSheet.absoluteFillObject removed (use StyleSheet.absoluteFill), various deprecated APIs cleaned up
  • Platform Updates: Metro bumped to 0.84.0, React updated with Hermes improvements, YogaNode migrated to Kotlin on Android

Full Translation

Translations

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

claudejamodel: claude-sonnet-4-20250514

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

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

2026年4月7日 · 6分で読める

Alan Lee Software Engineer @ Meta
Calix Tang Software Engineer @ Meta
Mathieu Acthernoene Software Engineer @ Expo
Gabriel Donadel Dall'Agnol Software Engineer @ Expo
Bartłomiej Błoniarz Software Engineer @ Software Mansion
Dawid Małecki Software Engineer @ Software Mansion
Zeya Peng Software Engineer @ Meta
Samuel Susla Software Engineer @ Meta

本日、React Native 0.85のリリースを発表できることを嬉しく思います!このリリースには新しいアニメーションバックエンドが含まれ、Jestプリセットが専用パッケージに移行され、その他多くの改善と修正が含まれています。

ハイライト

  • 新しいアニメーションバックエンド
  • 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は以前は不可能だったパフォーマンス改善を実現でき、更新の調整プロセスが適切にテストされ、将来のRNアップデートでも安定性を保つことができます。

Animatedでは、native driverでレイアウトプロパティをアニメーション化できるようになりました(以前ここで述べられていた制限はもはや適用されません)。

iOS | Android

より多くの例は react-native/packages/rn-tester/js/examples/AnimationBackend/ で確認できます。

オプトインするには、このページで説明されているReact Nativeの実験的チャンネルを有効にできます。

注意
この実験的機能は、近日中にリリースされるReact Native 0.85.1からのみ利用可能になります。

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

新しいアニメーションバックエンドにより、AnimatedでFlexboxとpositionプロパティをnative driverでアニメーション化できるようになります。

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の改善

React Native DevToolsは、このリリースでいくつかの改善を受けました:

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

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がブラウザ警告なしでローカルで信頼される証明書を生成する簡単な方法です。

破壊的変更

Jestプリセットが新しいパッケージに移行

React NativeのJestプリセットが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) — サポート対象(Active LTS)
  • Node.js v21 — サポート対象外(EOL)
  • Node.js v22 — サポート対象(Active LTS)
  • Node.js v23 — サポート対象外(EOL)
  • Node.js v24+ — サポート対象

StyleSheet.absoluteFillObjectの削除

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

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

その他の破壊的変更

全般

  • Pressableが非表示のActivityでイベントリスナーをアンマウントしなくなりました。
  • 非推奨のC++型エイリアスを削除:ShadowNode::SharedShadowNode::WeakShadowNode::UnsharedShadowNode::ListOfWeakShadowNode::ListOfSharedSharedImageManagerContextContainer::Shared — これらは使用されておらず、コンシューマーライブラリは型を直接使用する必要があります。

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: 複数のユーティリティ型変換($Valuesmixed$ReadOnly$ReadOnlyArray)。
  • Androidビルド: reactNativeDevServerIp Gradleプロパティ経由での開発サーバーIP指定を許可。
  • iOSビルド: React.XCFrameworkでclang仮想ファイルシステムのサポートを追加。

謝辞

React Native 0.85には58人の貢献者による604以上のコミットが含まれています。皆様のご尽力に感謝いたします!

このリリースで重要な貢献を行ったコミュニティメンバーに特別な感謝を送りたいと思います。

  • Zeya Peng、Bartłomiej Błoniarz、Dawid Małecki - Animated Backendの貢献
  • Vitali Zaidman - Metro TLSの貢献
  • Moti Zilberman - 複数のCDP接続の貢献
  • Phil PluckthunとAlex Hunt - Jestプリセット移行の貢献

さらに、このリリース投稿で機能の文書化に取り組んだ追加の著者にも感謝いたします。

0.85へのアップグレード

注意
0.85は現在React Nativeの最新安定版であり、0.82.xはサポート対象外になります。詳細については、React Nativeのサポートポリシーを参照してください。

アップグレード

既存のプロジェクトについては、React Native Upgrade Helperを使用してReact Nativeバージョン間のコード変更を確認し、アップグレードドキュメントも参照してください。

新しいプロジェクトの作成

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

Expo

Expoを使用している場合、次のSDKであるSDK 56にReact Native 0.85が含まれる予定です。

タグ: announcement release