React Native 0.85 Arrives: Revamped Animation Engine, DevTools Upgrades, and Key Breaking Changes
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.
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:
- Multiple CDP connections: React Native now supports simultaneous connections via the Chrome DevTools Protocol (CDP). This means tools like React Native DevTools, VS Code extensions, and AI agents can all connect at the same time without conflicting. The result is a richer, composable debugging workflow where sessions no longer end unexpectedly when another client connects.
- Native tabs on macOS: The desktop app has been recompiled for macOS 26 and now supports system-level tab handling. If you have multiple DevTools windows open, you can merge them via Window > Merge All Windows for a more organized workspace.
- Request payload previews restored: On Android, the Network Panel once again displays request body previews. This feature had been disabled due to a regression and is now fully functional.
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.
Related Articles
- How to Successfully Implement Hydrogen Fuel Cells in Military Drones (Lessons from Heven Aerotech)
- Urgent: Smarter Flight Paths Could Slash Aviation Emissions Immediately, Experts Say
- Rivian Slashes Georgia EV Factory Capacity to 300,000 After DOE Cuts Loan to $4.5 Billion
- Energizer's Child-Safe Batteries for AirTags: Everything You Need to Know
- V8 Engine Achieves 2.5x Performance Boost by Making Heap Numbers Mutable
- How to Boost Your Go Application with the Green Tea Garbage Collector
- Navigating the Flutter Material and Cupertino Code Freeze: A Comprehensive Guide
- Building AI Factories: A Guide to Sovereign AI at Scale