React Native 0.85: Revamped Animation Engine, Dedicated Jest Package, and More

From Usahobs, the free encyclopedia of technology

Introduction

The React Native team has officially released version 0.85, bringing a host of significant updates that enhance performance, developer experience, and compatibility. This release centers on a brand-new animation backend, the migration of the Jest preset to its own package, and several improvements to DevTools and Metro. Below, we dive into the key highlights and breaking changes you need to know.

React Native 0.85: Revamped Animation Engine, Dedicated Jest Package, and More

Highlights

New Animation Backend

React Native 0.85 introduces the Shared Animation Backend, developed in collaboration with Software Mansion. This overhaul replaces the internal engine that handles animations for both the Animated API and the Reanimated library. By centralizing the animation update logic within React Native’s core, the new backend enables performance gains that were previously unattainable and ensures consistent testing and stability across future releases.

One major benefit: you can now animate layout props (like flex, width, height) using the native driver in Animated. This removes a long-standing limitation. To illustrate, here’s a simple example that expands a blue box when a button is pressed:

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>
  );
}

You can find more examples in the react-native/packages/rn-tester/js/examples/AnimationBackend/ directory. To try this feature, enable the experimental channel as described in the official documentation. Note that this experimental feature will be available beginning with React Native 0.85.1, which is expected shortly.

React Native DevTools Improvements

The developer tools receive several noteworthy upgrades in 0.85:

  • Multiple CDP connections: Now supports simultaneous Chrome DevTools Protocol connections from tools like React Native DevTools, VS Code, and AI agents without interrupting each other. This unlocks richer workflows and composable debugging setups.
  • Native tabs on macOS: The desktop app now compiles for macOS 26 and includes system-level tab handling. Power users can merge all open DevTools windows via Window > Merge All Windows.
  • Request payload previews restored on Android: After a regression, the Network Panel once again shows request body previews on Android devices.

Metro TLS Support

The Metro dev server can now accept a TLS configuration object, enabling HTTPS (and secure WebSockets for Fast Refresh) during local development. This is particularly useful when you need to test features that require a secure context, such as service workers or geolocation, without deploying to a production server.

Breaking Changes

Jest Preset Moved to New Package

Starting with 0.85, the Jest preset that was previously bundled with react-native has been extracted into its own package: @react-native/jest-preset. If your project relies on the preset, you will need to update your Jest configuration accordingly. See the migration guide for details.

Dropped Support for EOL Node.js Versions

React Native 0.85 no longer supports Node.js versions that have reached their end-of-life (EOL). Ensure your development environment runs Node.js 18 or later (or the version specified in the official requirements). This change aligns with the Node.js release schedule and helps maintain security and performance.

StyleSheet.absoluteFillObject Removed

The StyleSheet.absoluteFillObject utility has been removed. If your code uses StyleSheet.absoluteFillObject, replace it with the StyleSheet.absoluteFill style object or manually define the positioning properties (position: 'absolute', top: 0, left: 0, right: 0, bottom: 0).

Other Breaking Changes

For a complete list of breaking changes, refer to the official changelog. Among them are adjustments to deprecated APIs and internal module paths that may affect third-party libraries or custom native modules.

Conclusion

React Native 0.85 marks a significant step forward with the new animation backend, improved DevTools, and Metro TLS support. While the breaking changes require some migration effort, they pave the way for a more stable and performant development experience. Update your projects and explore the new capabilities—especially the native-driver layout animations that many developers have been waiting for.