React Native 0.85: Performance Upgrades and Developer Experience Enhancements

By

Introduction

React Native 0.85 is now available, bringing a host of performance improvements and developer-friendly updates. This release introduces a new animation backend designed to boost efficiency, moves the Jest preset into its own dedicated package, and includes several other refinements. Below, we dive into the key highlights and breaking changes you need to know.

React Native 0.85: Performance Upgrades and Developer Experience Enhancements

New Animation Backend

The most notable addition is the Shared Animation Backend, developed in collaboration with Software Mansion. This engine revolutionizes how animations are processed internally for both the Animated and Reanimated libraries. By centralizing the animation update logic within React Native core, it enables Reanimated to achieve performance enhancements that were previously unattainable. Moreover, this ensures that the update reconciliation process undergoes rigorous testing and remains stable with future React Native releases.

How It Works

With the new backend, you can now animate layout properties like Flexbox and position attributes using the native driver in Animated. This eliminates previous limitations where such props required JavaScript-driven animations, leading to smoother and more responsive UI interactions.

Animating Layout Props

To get started, enable the experimental channel (available from React Native 0.85.1 onward). Here’s a simple example demonstrating how to animate a view’s width using the native driver:

import { Animated, Button, View, useAnimatedValue } from 'react-native';

function ExpandingBox() {
  const width = useAnimatedValue(100);
  const expand = () => {
    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={expand} />
    </View>
  );
}

For more examples, explore the react-native/packages/rn-tester/js/examples/AnimationBackend/ directory in the main repository.

Jest Preset Migration

As part of ongoing dependency management improvements, React Native 0.85 relocates the Jest preset to a separate package: @react-native/jest-preset. This change reduces the core package size and gives developers more flexibility in updating testing configurations independently. If you currently use react-native/jest-preset, you will need to update your jest.config.js to point to the new package. This is a breaking change; ensure your project is updated accordingly.

React Native DevTools Improvements

Developer tooling receives several upgrades in this release, enhancing debugging workflows and cross-tool compatibility.

Multiple CDP Connections

React Native now supports multiple simultaneous Chrome DevTools Protocol connections. This means clients like React Native DevTools, VS Code, and AI-powered agents can all connect at once without interfering with each other. The result is a richer, composable tooling environment where you can use multiple debugging tools concurrently.

Native Tabs on macOS

The desktop application has been recompiled for macOS 26 and now includes system-level tab handling. When multiple DevTools windows are open, you can merge them via Window > Merge All Windows to keep your workspace organized. This feature is especially useful for developers who manage several debugging sessions simultaneously.

Request Payload Previews

A regression that disabled request body previews in the Network Panel has been resolved. On Android, you can once again inspect request payloads directly from the DevTools, streamlining network debugging.

Metro TLS Support

The Metro development server now accepts a TLS configuration object, enabling HTTPS (and WSS for Fast Refresh) during local development. This is particularly beneficial for teams that require secure connections while testing features like service workers, secure cookies, or external API integrations. Simply pass a TLS certificate and key to the Metro configuration to enable it.

Other Breaking Changes

Beyond the Jest preset move, React Native 0.85 introduces a few additional breaking changes that require attention:

Getting Started

To upgrade your existing project, run npx react-native upgrade or follow the official migration guide. The new animation backend is still experimental—opt in by enabling the experimental channel as described in the New Animation Backend section. Note that this feature will only be fully available starting with React Native 0.85.1, which is coming soon.

React Native 0.85 marks a significant step forward in both performance and developer tooling. We encourage you to test the new backend and share feedback with the community. Happy coding!

Related Articles

Recommended

Discover More

Samsung Canada Trade-In Page Hints at Upcoming Galaxy Watch 9: What We Know So FarA Step-by-Step Guide to Reversing Diabetes in Mice Using Lab-Grown Insulin CellsDesign Gap Exposed: Everyday Products Work, But Few Deliver Real Satisfaction10 Must-Know Android Game & App Deals This WeekThe Sweet Science of Honey: Ancient Remedy or Modern Myth?