React Native 0.85: Key Updates and How They Affect Your Development Workflow
React Native 0.85 introduces several significant changes and improvements aimed at enhancing performance, developer experience, and tooling. This Q&A covers the major highlights, including the new animation backend, Jest preset migration, DevTools upgrades, and Metro TLS support. For a quick overview, see the sections on animation backend, DevTools, Metro TLS, and breaking changes.
1. What is the new Shared Animation Backend in React Native 0.85?
React Native 0.85 debuts the Shared Animation Backend, developed in partnership with Software Mansion. This is a redesigned internal engine that governs how animations are processed behind the scenes for both the Animated API and the Reanimated library. By centralizing the animation update logic directly within React Native's core, the new backend brings several benefits. It enables Reanimated to achieve performance gains that were previously unattainable, while also ensuring that the update reconciliation process is thoroughly tested and stays stable across future React Native releases. For developers using the Animated API, this means you can now animate layout properties—such as flexbox and position values—using the native driver, a capability that was previously missing. To opt into this experimental feature, you'll need to enable it via React Native's experimental channel starting from version 0.85.1, which will be released shortly after 0.85.
2. How does the new animation backend improve performance for Animated and Reanimated?
The Shared Animation Backend consolidates the core animation update loop into React Native's infrastructure, allowing both Animated and Reanimated to tap into a unified, optimized pipeline. For Reanimated, this shift made possible performance enhancements that were difficult to implement when the update logic was scattered across multiple libraries. The backend also ensures that the reconciliation process—how animations are synchronized with the UI—is rigorously tested and remains compatible with upcoming React Native updates. In practical terms, the biggest benefit for Animated users is the newfound ability to animate layout properties (like width, height, and flex) using the native driver. Previously, these properties required the JavaScript driver, which could cause jank during complex animations. Now, with the native driver, animations run on the native thread, resulting in smoother, 60fps performance even for layout-related changes.
3. How can developers animate layout props using the native driver with the new backend?
With the new animation backend, animating layout props is straightforward. You simply use the useAnimatedValue hook (or new Animated.Value) and set useNativeDriver: true in your animation configuration. For example, to animate the width of a view from 100 to 300 over 500 milliseconds, you'd write: const width = useAnimatedValue(100); Animated.timing(width, { toValue: 300, duration: 500, useNativeDriver: true }).start();. Then apply that animated value to the style of an Animated.View. This works for any Flexbox or position property—such as height, margin, padding, top, left, etc.—that you might want to animate. The native driver ensures these animations run smoothly without crossing the JavaScript bridge for each frame. You can find additional examples in the react-native/packages/rn-tester/js/examples/AnimationBackend/ directory of the source code. Remember, this feature is experimental and requires opting into the experimental channel once React Native 0.85.1 is available.
4. What are the key improvements in React Native DevTools in version 0.85?
React Native DevTools receives three notable enhancements in this release. First, it now supports multiple simultaneous Chrome DevTools Protocol (CDP) connections. This means tools like React Native DevTools, VS Code extensions, and AI agents can all connect to the same debug target at once, enabling richer, composable workflows without unexpectedly ending each other's sessions. Second, on macOS, the desktop app has been updated to compile for macOS 26, and it now includes native tab handling. Power users can merge multiple DevTools windows into a single tabbed interface via Window > Merge All Windows. Third, request body previews in the Network Panel—which were previously broken due to a regression—are now restored on Android. This allows developers to inspect outgoing network request payloads, making it easier to debug API calls. These improvements collectively streamline the debugging experience, especially for teams using multiple tools simultaneously.
5. What is the new Metro TLS support and how can it be used?
Version 0.85 adds TLS (Transport Layer Security) support to the Metro dev server. You can now pass a TLS configuration object to the server, which enables HTTPS connections during development. This also extends to WebSocket Secure (WSS) for hot reloading features like Fast Refresh. To use it, you need to provide a valid certificate and key as part of the Metro configuration. This is particularly useful for testing features that require a secure context, such as service workers, geolocation, or camera access, which may need a local HTTPS environment. Enabling TLS also ensures that your development environment more closely mirrors production, reducing surprises when deploying. The configuration is done via the server settings in metro.config.js. For step-by-step instructions, refer to the Metro documentation on customizing the server.
6. What breaking changes should developers be aware of when upgrading to 0.85?
Several breaking changes accompany React Native 0.85. The most significant is the migration of the Jest preset to a dedicated package. Previously available as react-native/jest-preset, it now resides in @react-native/jest-preset. You must update your jest.config.js or package.json to reference the new package. Additionally, support for end-of-life Node.js versions (12, 13, 14, and 15) has been dropped; Node 16 or newer is required. The deprecated StyleSheet.absoluteFillObject was removed; use StyleSheet.absoluteFill instead. There are also smaller changes, such as the removal of some internal APIs. To ensure a smooth upgrade, review the full list of changes in the official release notes and test your project thoroughly. The move to a separate Jest preset package helps decouple testing from the core library, making updates more manageable.
7. Why was the Jest preset moved to a new package and how does it affect testing?
The Jest preset—which provides default configuration for testing React Native components—was extracted from the main react-native package into a standalone package named @react-native/jest-preset. This change was made to reduce the core package's size and to allow the testing utilities to evolve independently. For developers, the impact is minimal but requires updating test configuration. Where you previously wrote preset: 'react-native' in your Jest config, you now need to use preset: '@react-native/jest-preset'. If you're using a jest.config.js file, change the preset line accordingly. The actual behavior and available matchers remain the same. This migration also future-proofs the testing infrastructure, as updates to the preset can be released separately from React Native core, without necessitating a full version bump. After updating the preset name, run your tests to verify everything works. If you encounter issues, check that you have the latest version of @react-native/jest-preset installed.
Related Articles
- Electrifying the Hot Hatch: Inside Volkswagen's Electric GTI Clubsport with Virtual Gearshift Technology
- May 2026 Desktop Wallpapers: Fresh Inspiration from Global Artists
- AI Gets Flutter and Dart Expertise: Google Launches Task-Oriented Agent Skills
- Electric Vehicle Milestones: Tesla Semi Launch, Xpeng VLA 2.0 Review, Rivian Financial Update
- Using the Hydrogenosome Discovery to Slash Livestock Methane Emissions
- How the UK Slashed Gas Imports by £1.7bn Using Wind and Solar: A Step-by-Step Guide
- Bezos Family Office Representative Departs Slate Auto Board Before First Electric Truck Rolls Out
- AI to Power Energy Revolution: US Energy Secretary and NVIDIA Unveil Genesis Mission Details