Skip to content

Commit fd36657

Browse files
authored
[blog] Add 0.85 release post (#5038)
* Add React Native 0.85 blog post Add the release blog post for React Native 0.85 covering the new Animation Backend, DevTools improvements, Metro TLS support, Jest preset migration, and other breaking changes. Also adds missing author entries to authors.yml. * Add images for 0.85 blog post Add animation backend demo GIFs for iOS and Android, and DevTools macOS tabs screenshot. Update blog post to reference the new assets. * Display animation backend GIFs side by side in a table * Fix prettier lint for markdown table formatting * Fix prettier table formatting via --write * Apply PR feedback from Simek - Use internal link for animations#caveats - Add title parameter to metro.config.js and jest.config.js code blocks - Use sh instead of text for CLI command code block * Apply huntie's feedback and update date to 2026-04-07 - Simplify Expo SDK paragraph wording - Update blog post date from 2026-04-06 to 2026-04-07
1 parent 197721e commit fd36657

5 files changed

Lines changed: 246 additions & 0 deletions

File tree

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
---
2+
title: 'React Native 0.85 - New Animation Backend, TextInput Selection Data, New Jest Preset Package'
3+
authors:
4+
[
5+
alanleedev,
6+
CalixTang,
7+
zoontek,
8+
gabrieldonadel,
9+
bartlomiejbloniarz,
10+
coado,
11+
zeyap,
12+
SamuelSusla,
13+
]
14+
tags: [announcement, release]
15+
date: 2026-04-07
16+
---
17+
18+
# React Native 0.85 - New Animation Backend, TextInput Selection Data, New Jest Preset Package
19+
20+
Today we are excited to release React Native 0.85!
21+
22+
This release includes the New Animation Backend, adds selection data to TextInput `onChange` events, moves the Jest preset to a dedicated package, and includes many other improvements and fixes.
23+
24+
### Highlights
25+
26+
- [New Animation Backend](/blog/2026/04/07/react-native-0.85#new-animation-backend)
27+
- [React Native DevTools Improvements](/blog/2026/04/07/react-native-0.85#react-native-devtools-improvements)
28+
- [Metro TLS Support](/blog/2026/04/07/react-native-0.85#metro-tls-support)
29+
30+
### Breaking Changes
31+
32+
- [Jest Preset Moved to New Package](/blog/2026/04/07/react-native-0.85#jest-preset-moved-to-new-package)
33+
- [Dropped Support for EOL Node.js Versions](/blog/2026/04/07/react-native-0.85#dropped-support-for-eol-nodejs-versions)
34+
- [`StyleSheet.absoluteFillObject` Removed](/blog/2026/04/07/react-native-0.85#stylesheetabsolutefillobject-removed)
35+
- [Other Breaking Changes](/blog/2026/04/07/react-native-0.85#other-breaking-changes)
36+
37+
<!--truncate-->
38+
39+
## Highlights
40+
41+
### New Animation Backend
42+
43+
React Native 0.85 introduces the new Shared Animation Backend, built in collaboration with [Software Mansion](https://swmansion.com/). This is a new internal engine that powers how animations are applied under the hood for both Animated and Reanimated. By moving the main animation update logic to React Native core, Reanimated is able to land performance improvements that weren't possible before, and can ensure that the update reconciliation process is properly tested and will remain stable with future RN updates. In Animated, you can now animate layout props with native driver (the [limitation once stated here](/docs/animations#caveats) no longer applies).
44+
45+
| iOS | Android |
46+
| :-------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------: |
47+
| <img src="/blog/assets/0.85-animation-backend-ios.gif" alt="Animation Backend demo on iOS" /> | <img src="/blog/assets/0.85-animation-backend-android.gif" alt="Animation Backend demo on Android" /> |
48+
49+
You can find more examples under [`react-native/packages/rn-tester/js/examples/AnimationBackend/`](https://github.com/facebook/react-native/tree/main/packages/rn-tester/js/examples/AnimationBackend).
50+
51+
To opt in, enable `useSharedAnimatedBackend` and `cxxNativeAnimatedEnabled` in `ReactNativeFeatureFlags`.
52+
53+
#### How to animate layout props
54+
55+
With the new animation backend, you'll be able to animate Flexbox and position props with native driver in Animated.
56+
57+
```jsx
58+
import {
59+
Animated,
60+
View,
61+
Button,
62+
useAnimatedValue,
63+
} from 'react-native';
64+
import {allowStyleProp} from 'react-native/Libraries/Animated/NativeAnimatedAllowlist';
65+
66+
allowStyleProp('width');
67+
68+
function MyComponent() {
69+
const width = useAnimatedValue(100);
70+
71+
const toggle = () => {
72+
Animated.timing(width, {
73+
toValue: 300,
74+
duration: 500,
75+
useNativeDriver: true,
76+
}).start();
77+
};
78+
79+
return (
80+
<>
81+
<Animated.View
82+
style={{width, height: 100, backgroundColor: 'blue'}}
83+
/>
84+
<Button title="Expand" onPress={toggle} />
85+
</>
86+
);
87+
}
88+
```
89+
90+
### React Native DevTools Improvements
91+
92+
React Native DevTools received several improvements in this release:
93+
94+
- **Multiple CDP connections**: React Native now supports multiple simultaneous Chrome DevTools Protocol connections, enabling clients such as React Native DevTools, VS Code, and AI agents to connect at the same time. This unlocks richer, composable tooling workflows without unexpectedly ending sessions.
95+
- **Native tabs on macOS**: We've updated the desktop app to compile for macOS 26, and have also enabled system-level tab handling for power users. Access via **Window > Merge All Windows**, when multiple DevTools windows are open.
96+
97+
<img src="/blog/assets/0.85-devtools-macos-tabs.png" alt="DevTools native tabs on macOS" />
98+
99+
- **Request payload previews**: After being disabled due to a regression, request body previews in the Network Panel are now restored on Android.
100+
101+
### Metro TLS Support
102+
103+
The Metro dev server can now accept a TLS configuration object, enabling HTTPS (and WSS for Fast Refresh) during development — useful for testing APIs that enforce secure connections.
104+
105+
Configure it in `metro.config.js`:
106+
107+
```js title="metro.config.js"
108+
const fs = require('fs');
109+
110+
config.server.tls = {
111+
ca: fs.readFileSync('path/to/ca'),
112+
cert: fs.readFileSync('path/to/cert'),
113+
key: fs.readFileSync('path/to/key'),
114+
};
115+
```
116+
117+
<!-- alex ignore simple -->
118+
119+
For local development, [mkcert](https://github.com/FiloSottile/mkcert) is a simple way to generate a locally-trusted certificate without browser warnings.
120+
121+
## Breaking Changes
122+
123+
### Jest Preset Moved to New Package
124+
125+
React Native's Jest preset has been extracted from `react-native` into the new `@react-native/jest-preset`, reducing core package size and giving projects more flexibility in their testing setup.
126+
127+
Update your `jest.config.js` with a one-line change:
128+
129+
```diff title="jest.config.js"
130+
- preset: 'react-native',
131+
+ preset: '@react-native/jest-preset',
132+
```
133+
134+
### Dropped Support for EOL Node.js Versions
135+
136+
React Native 0.85 drops support for end-of-life (EOL) Node.js versions (v21, v23) and releases before 20.19.4. Please ensure you are running a supported version of Node.js before upgrading.
137+
138+
### `StyleSheet.absoluteFillObject` Removed
139+
140+
The deprecated `StyleSheet.absoluteFillObject` API has been removed. Use `StyleSheet.absoluteFill` or define your own absolute positioning styles instead.
141+
142+
```diff
143+
- const styles = StyleSheet.absoluteFillObject;
144+
+ const styles = StyleSheet.absoluteFill;
145+
```
146+
147+
### Other Breaking Changes
148+
149+
#### General
150+
151+
- Removed deprecated TypeScript type aliases — use the types directly.
152+
- `Pressable` no longer unmounts event listeners in hidden `Activity`.
153+
154+
#### Android
155+
156+
- Re-added `receiveTouches` to `RCTEventEmitter` with default no-op.
157+
- `ReactTextUpdate` is now internal.
158+
- Removed support for `ReactZIndexedViewGroup`.
159+
- Multiple classes deprecated or removed as legacy architecture cleanup.
160+
- Deprecated `UIManagerHelper` methods and classes.
161+
- Removed `CatalystInstanceImpl` and other legacy architecture classes.
162+
- Stubbed out `NativeViewHierarchyManager`.
163+
164+
#### iOS
165+
166+
- Deprecated `RCTHostRuntimeDelegate` and merged into `RCTHostDelegate`.
167+
- Fixed duplicate symbol error when using `React.XCFramework` (via `fmt` bump to 12.1.0).
168+
169+
## Other Changes
170+
171+
- **Metro** bumped to `^0.84.0`.
172+
- **React** updated to consume Hermes `250829098.0.10`.
173+
- **Yoga**: `YogaNode` migrated to Kotlin on Android.
174+
- **Accessibility**: Deprecated `AccessibilityInfo.setAccessibilityFocus` in favor of `AccessibilityInfo.sendAccessibilityEvent`.
175+
- **TypeScript**: Multiple utility type transformations (`$Values`, `mixed`, `$ReadOnly`, `$ReadOnlyArray`).
176+
- **View Transitions**: New feature flag `viewTransitionEnabled` created.
177+
- **Android Build**: Allow specifying dev server IP via Gradle property.
178+
- **Android Build**: Re-added `prefabPublishing=true` for building from source.
179+
- **iOS Build**: Added support for clang virtual file system in `React.XCFramework`.
180+
181+
## Acknowledgements
182+
183+
React Native 0.85 contains over 604 commits from 58 contributors. Thanks for all your hard work!
184+
185+
<!--alex ignore special white-->
186+
187+
We want to send a special thank you to those community members that shipped significant contributions in this release.
188+
189+
- [Zeya Peng](https://github.com/zeyap), [Bartłomiej Błoniarz](https://github.com/bartlomiejbloniarz), and [Dawid Małecki](https://github.com/coado) for the Animated Backend
190+
- [Vitali Zaidman](https://github.com/vzaidman) for Metro TLS
191+
- [Moti Zilberman](https://github.com/motiz88) for Multiple CDP Connections
192+
- [Phil Pluckthun](https://github.com/kitten) and [Alex Hunt](https://github.com/huntie) for the Jest Preset migration
193+
194+
Moreover, we also want to thank the additional authors that worked on documenting features in this release post:
195+
196+
<!-- TODO: Add blog post co-authors -->
197+
198+
## Upgrade to 0.85
199+
200+
:::info
201+
202+
0.85 is now the latest stable version of React Native and 0.82.x moves to unsupported. For more information see [React Native's support policy](https://github.com/reactwg/react-native-releases/blob/main/docs/support.md).
203+
204+
:::
205+
206+
#### Upgrading
207+
208+
Please use the [React Native Upgrade Helper](https://react-native-community.github.io/upgrade-helper/) to view code changes between React Native versions for existing projects, in addition to the [Upgrading docs](/docs/upgrading).
209+
210+
#### Create a new project
211+
212+
```sh
213+
npx @react-native-community/cli@latest init MyProject --version latest
214+
```
215+
216+
#### Expo
217+
218+
If you use Expo, the next SDK, SDK 56, will include React Native 0.85.

website/blog/authors.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,3 +396,31 @@ markusleyendecker:
396396
socials:
397397
github: mliond
398398
image_url: https://github.com/mliond.png
399+
400+
CalixTang:
401+
name: Calix Tang
402+
title: Software Engineer @ Meta
403+
socials:
404+
github: CalixTang
405+
image_url: https://github.com/CalixTang.png
406+
407+
zoontek:
408+
name: Mathieu Acthernoene
409+
title: Software Engineer @ Expo
410+
socials:
411+
github: zoontek
412+
image_url: https://github.com/zoontek.png
413+
414+
bartlomiejbloniarz:
415+
name: Bartłomiej Błoniarz
416+
title: Software Engineer @ Software Mansion
417+
socials:
418+
github: bartlomiejbloniarz
419+
image_url: https://github.com/bartlomiejbloniarz.png
420+
421+
zeyap:
422+
name: Zeya Peng
423+
title: Software Engineer @ Meta
424+
socials:
425+
github: zeyap
426+
image_url: https://github.com/zeyap.png
1.94 MB
Loading
2.6 MB
Loading
215 KB
Loading

0 commit comments

Comments
 (0)