React Native 0.85 Arrives: Revamped Animation Engine, DevTools Upgrades, and Key Breaking Changes

By • min read

Introduction

React Native 0.85 has officially been released, bringing a suite of improvements that refine developer experience and application performance. This version introduces a new animation backend, shifts the Jest preset to a dedicated package, and delivers multiple enhancements to the development toolchain. Below, we break down the major updates and the breaking changes you need to know before upgrading.

React Native 0.85 Arrives: Revamped Animation Engine, DevTools Upgrades, and Key Breaking Changes

Highlights

New Animation Backend

The centerpiece of React Native 0.85 is the Shared Animation Backend, developed in collaboration with Software Mansion. This new internal engine powers animations for both the Animated API and the popular Reanimated library. By relocating the core animation update logic into React Native’s core, Reanimated can now achieve performance improvements that were previously out of reach. Additionally, the update reconciliation process benefits from more thorough testing and is guaranteed to remain stable with future React Native releases.

One immediate advantage is that layout props (such as Flexbox and position properties) can now be animated using the native driver in Animated. Previously, this was not possible. To opt in, you need to enable the experimental channel of React Native as described in the official documentation. Note that this experimental feature will be available starting from React Native 0.85.1, which is scheduled for release shortly.

Here’s a quick example demonstrating how to animate a view’s width:

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 Improvements

The developer tools have received several noteworthy upgrades in this release:

Metro TLS Support

The Metro development server now accepts a TLS configuration object, enabling HTTPS connections during development. This also applies to WebSocket Secure (WSS) for Fast Refresh, ensuring that your local development environment can more closely mimic production conditions, especially when testing secure features or mixed-content scenarios.

Breaking Changes

Jest Preset Moved to New Package

The Jest preset has been extracted from the main react-native package into its own dedicated package. If you use Jest for testing, you will need to update your project’s dependencies and configuration to point to the new package. Details on migration can be found in the release notes.

Dropped Support for End-of-Life Node.js Versions

React Native 0.85 no longer supports Node.js versions that have reached their end of life. Ensure your development environment runs a currently supported Node.js version (such as 18 or 20) to avoid compatibility issues.

StyleSheet.absoluteFillObject Removed

The StyleSheet.absoluteFillObject utility has been removed. Developers should transition to using StyleSheet.absoluteFill (which returns a style object) or define the absolute positioning manually. This change aligns with React Native’s ongoing effort to streamline the API surface.

Other Breaking Changes

Additional minor breaking changes are part of this release. For a complete list, consult the official React Native changelog. As always, we recommend thoroughly testing your applications after upgrading.

Conclusion

React Native 0.85 marks a significant step forward with its new animation backend and enhanced debugging capabilities. While the breaking changes require some migration effort, the performance gains and improved developer experience make the upgrade worthwhile. Stay tuned for the upcoming 0.85.1 release to unlock the experimental animation features fully.

Recommended

Discover More

Designing Inclusive Session Timeouts: A Practical Guide for Web ProfessionalsThe Shifting Landscape of UX Design: When Code Becomes a Deliverable10 Reasons Why Switching Your Handheld from Windows to Bazzite Transforms the ExperienceHow to Stay Overnight at Sanford Orthopedic Hospital & Highpoint Hotel: A Step-by-Step GuideRivian Surges Past Expectations with Record Q1 Deliveries as R2 Production Ramps Up