React Native 0.85 released
React Native published version 0.85 with an updated animation backend, TextInput improvements, and Metro TLS updates aimed at cross-platform stability and performance. Some community experts have already started unpacking the release for styling and performance implications, which matters for developers maintaining mobile parity with web builds. The release nudges teams to reassess animation and input handling in apps that share logic between React and React Native. (x.com) (x.com)
A React Native app is two worlds glued together: JavaScript decides what should happen, and native code on iPhone or Android makes pixels move on the screen. React Native 0.85 changes part of that glue by replacing the animation engine under both Animated and Reanimated with one shared backend built with Software Mansion. (reactnative.dev) That engine is the part that turns “move this box from 100 to 300” into frame-by-frame updates. In React Native 0.85, the team says moving more of that update logic into React Native core lets Reanimated gain performance improvements and makes the reconciliation path easier to test against future framework updates. (reactnative.dev) The visible change for developers is that Animated can now drive layout properties with the native driver, including Flexbox and position values. Before this release, “native driver” worked for a narrower set of properties, so many layout-heavy animations still had to fall back to slower paths or custom libraries. (reactnative.dev) This is not switched on for everyone in 0.85.0. The React Native team says the new animation backend is behind the experimental channel and will only be available starting in React Native 0.85.1, which means 0.85.0 is the release that prepares the plumbing more than the one that fully flips the switch. (reactnative.dev) The other reason 0.85 is getting attention is that React Native styling often sits in a tug-of-war between JavaScript updates and native updates. Jacek Pudysz, who maintains styling tools that hook deeply into React Native internals, wrote that one of the biggest 0.85 changes is a new Shadow Tree commit branching model that separates React commits from other native commits before merging them. (reactnativecrossroads.com) The Shadow Tree is React Native’s internal map of what the interface should look like, like a blueprint the app keeps revising while users tap and scroll. Pudysz says the old model let JavaScript-driven updates and native-driven updates fight over the same revision, while the new branching model reduces that contention but forces libraries that patch styles directly to reapply their changes after merge. (reactnativecrossroads.com) Input fields got quieter but important work too. React Native 0.85 includes TextInput improvements in the release notes, and that matters because text fields are where cross-platform apps most often drift apart, with web, iPhone, and Android each handling focus, keyboards, and selection a little differently. (reactnative.dev) The Metro change is easier to miss if you only read feature lists. Metro is the local server that feeds JavaScript to your app during development, and 0.85 adds Transport Layer Security support so teams can run Hypertext Transfer Protocol Secure and secure WebSocket connections while testing apps that require encrypted local traffic. (reactnative.dev) There are also upgrade traps hiding in the same release. React Native 0.85 moves the Jest preset into a new package called @react-native/jest-preset, drops support for end-of-life Node.js versions, and removes StyleSheet.absoluteFillObject in favor of StyleSheet.absoluteFill. (reactnative.dev) That last removal already hit real projects within days. A React Native Paper issue opened on April 8, 2026 says upgrading to 0.85 caused double spinners on loading buttons because the library was still using absoluteFillObject. (github.com) So 0.85 is one of those framework releases where the headline feature is animation, but the real story is infrastructure. It ships on April 7, 2026 as version 0.85.0, and it pushes teams to audit animation code, test every text input path, and check old styling helpers before calling the upgrade “routine.” (reactnative.dev)