React Native 0.85: Key Updates in Animation, Testing, and Developer Tooling
React Native 0.85 is now live, bringing a shared animation backend, a reorganized Jest preset, refined DevTools, and Metro TLS support. Below, we answer common questions about the major highlights, breaking changes, and how to make the most of this release.
1. What Is the New Shared Animation Backend in React Native 0.85?
React Native 0.85 introduces the Shared Animation Backend, developed in collaboration with Software Mansion. This internal engine reworks how Animated and Reanimated apply animations. By moving the core update logic into React Native’s own core, the new backend enables Reanimated to deliver performance improvements that were previously impossible. It also ensures the update reconciliation process is thoroughly tested and stable across future React Native upgrades.
For Animated users, a key benefit is the ability to animate layout props (Flexbox and positioning) using the native driver—something that was previously restricted. To try it, enable the experimental channel (available from React Native 0.85.1). The feature is documented in detail in the animation layout props section.
2. How Can I Animate Layout Props with the Native Driver?
With the new animation backend, you can now animate Flexbox and position props like width and height directly using the native driver in Animated. The following example shows a simple toggle that expands a blue rectangle from 100 to 300 units wide over 500 milliseconds:
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>
);
}
This eliminates the need to fall back to the JavaScript driver for layout animations, resulting in smoother transitions and better performance.
3. What Improvements Were Made to React Native DevTools?
React Native DevTools in version 0.85 gains three notable enhancements:
- Multiple CDP connections: The tools now support several simultaneous Chrome DevTools Protocol connections. This means you can run React Native DevTools, VS Code, and an AI agent side‑by‑side without terminating one another’s sessions.
- Native tabs on macOS: The desktop app has been updated for macOS 26 and now supports system‑level tab handling. Power users can merge all DevTools windows into one window with tabs via Window > Merge All Windows.
- Request payload previews: A regression that disabled body previews in the Network Panel on Android has been fixed, restoring the ability to inspect request payloads.
4. How Does Metro TLS Support Work in React Native 0.85?
Metro, the JavaScript bundler for React Native, can now accept a TLS configuration object. This enables HTTPS for the dev server and WSS (WebSocket Secure) for Fast Refresh during local development. Developers who need to test features that require a secure connection—such as service workers, geolocation, or third‑party OAuth flows—can now do so without relying on a production server. The TLS setup is fully configurable inside the metro.config.js file.
5. What Are the Breaking Changes in React Native 0.85?
React Native 0.85 introduces several breaking changes that developers should be aware of before upgrading:
- Jest preset moved to a dedicated package: The Jest preset is no longer included in
react-nativeby default. You must now install@react-native/jest-presetas a separate dependency and update your Jest configuration accordingly. - Dropped support for EOL Node.js versions: Versions of Node.js that have reached their end of life (e.g., Node 14 and earlier) are no longer supported.
- StyleSheet.absoluteFillObject removed: This shorthand constant has been deprecated and removed. Replace it with
StyleSheet.absoluteFillor inline style values. - Additional minor breaking changes are documented in the official release notes.
6. Why Was the Jest Preset Moved to a Separate Package?
Previously, the Jest preset for React Native was bundled directly inside the react-native package. In 0.85, it has been extracted to its own package, @react-native/jest-preset. The move reduces the core package’s footprint, allows the preset to be versioned independently, and makes it easier for the community to maintain and improve testing infrastructure without affecting the main React Native release cycle.
Developers will need to add the new package as a dependency and update their jest.config.js to reference it (e.g., preset: '@react-native/jest-preset'). Full migration instructions are provided in the upgrade guide.
7. What Does Dropping Support for EOL Node.js Versions Mean for My Project?
React Native 0.85 drops compatibility with Node.js versions that have reached their end of life (EOL), such as Node 14.x and earlier. EOL versions no longer receive security patches or bug fixes from the Node.js project. By requiring a current, supported Node.js release (Node 16 LTS or later), React Native ensures better security, performance, and feature parity with modern development tooling. Developers must upgrade their local Node.js environment to a supported version before installing or running React Native 0.85.
Related Articles
- Renewable Energy Retailer Inks Landmark Deal with Hybrid Solar-Battery Plant to Power Organic Recycling Operations
- Flutter and Dart Unveil AI Strategy for 2026 Amid Developer Trust Gap
- Rivian Accelerates Southern California Presence with Expanded Caruso Partnership: New Showrooms and Over 150 Fast Chargers at Premier LA Retail Centers
- Rocsys M1: Hands-Free Robotaxi Charging Explained
- Your Ultimate Guide to Snagging Green Tech Bargains: Yozma, EcoFlow, Anker, and Beyond
- Gaming Marathon on the OnePlus Nord 6: How the 9,000mAh Battery Holds Up
- 10 Pivotal Acquisitions That Shaped Apple Under Tim Cook
- 5 Key Insights on Lexus’s Upcoming Three-Row Electric SUV