Skip to content

Commit 1427fa5

Browse files
committed
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.
1 parent 5eebf67 commit 1427fa5

2 files changed

Lines changed: 258 additions & 0 deletions

File tree

Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
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-06
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/06/react-native-0.85#new-animation-backend)
27+
- [React Native DevTools Improvements](/blog/2026/04/06/react-native-0.85#react-native-devtools-improvements)
28+
- [Metro TLS Support](/blog/2026/04/06/react-native-0.85#metro-tls-support)
29+
30+
### Breaking Changes
31+
32+
- [Jest Preset Moved to New Package](/blog/2026/04/06/react-native-0.85#jest-preset-moved-to-new-package)
33+
- [Dropped Support for EOL Node.js Versions](/blog/2026/04/06/react-native-0.85#dropped-support-for-eol-nodejs-versions)
34+
- [`StyleSheet.absoluteFillObject` Removed](/blog/2026/04/06/react-native-0.85#stylesheetabsolutefillobject-removed)
35+
- [Other Breaking Changes](/blog/2026/04/06/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](https://reactnative.dev/docs/animations#caveats) no longer applies).
44+
45+
<!-- TODO: Add iOS demo video -->
46+
<!-- <p style={{textAlign: 'center'}}>
47+
<video width={320} controls="controls" autoPlay>
48+
<source type="video/mp4" src="/blog/assets/0.85-animation-backend-ios.mp4" />
49+
</video>
50+
</p> -->
51+
52+
<!-- TODO: Add Android demo video -->
53+
<!-- <p style={{textAlign: 'center'}}>
54+
<video width={320} controls="controls" autoPlay>
55+
<source type="video/mp4" src="/blog/assets/0.85-animation-backend-android.mp4" />
56+
</video>
57+
</p> -->
58+
59+
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).
60+
61+
To opt in, enable `useSharedAnimatedBackend` and `cxxNativeAnimatedEnabled` in `ReactNativeFeatureFlags`.
62+
63+
#### How to animate layout props
64+
65+
With the new animation backend, you'll be able to animate Flexbox and position props with native driver in Animated.
66+
67+
```jsx
68+
import {
69+
Animated,
70+
View,
71+
Button,
72+
useAnimatedValue,
73+
} from 'react-native';
74+
import {allowStyleProp} from 'react-native/Libraries/Animated/NativeAnimatedAllowlist';
75+
76+
allowStyleProp('width');
77+
78+
function MyComponent() {
79+
const width = useAnimatedValue(100);
80+
81+
const toggle = () => {
82+
Animated.timing(width, {
83+
toValue: 300,
84+
duration: 500,
85+
useNativeDriver: true,
86+
}).start();
87+
};
88+
89+
return (
90+
<>
91+
<Animated.View
92+
style={{width, height: 100, backgroundColor: 'blue'}}
93+
/>
94+
<Button title="Expand" onPress={toggle} />
95+
</>
96+
);
97+
}
98+
```
99+
100+
### React Native DevTools Improvements
101+
102+
React Native DevTools received several improvements in this release:
103+
104+
- **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.
105+
- **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.
106+
107+
<!-- TODO: Add DevTools macOS tabs screenshot -->
108+
<!-- <img src="/blog/assets/0.85-devtools-macos-tabs.png" alt="DevTools native tabs on macOS" /> -->
109+
110+
- **Request payload previews**: After being disabled due to a regression, request body previews in the Network Panel are now restored on Android.
111+
112+
### Metro TLS Support
113+
114+
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.
115+
116+
Configure it in `metro.config.js`:
117+
118+
```js
119+
const fs = require('fs');
120+
121+
config.server.tls = {
122+
ca: fs.readFileSync('path/to/ca'),
123+
cert: fs.readFileSync('path/to/cert'),
124+
key: fs.readFileSync('path/to/key'),
125+
};
126+
```
127+
128+
<!-- alex ignore simple -->
129+
130+
For local development, [mkcert](https://github.com/FiloSottile/mkcert) is a simple way to generate a locally-trusted certificate without browser warnings.
131+
132+
## Breaking Changes
133+
134+
### Jest Preset Moved to New Package
135+
136+
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.
137+
138+
Update your `jest.config.js` with a one-line change:
139+
140+
```diff
141+
// jest.config.js
142+
- preset: 'react-native',
143+
+ preset: '@react-native/jest-preset',
144+
```
145+
146+
### Dropped Support for EOL Node.js Versions
147+
148+
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.
149+
150+
### `StyleSheet.absoluteFillObject` Removed
151+
152+
The deprecated `StyleSheet.absoluteFillObject` API has been removed. Use `StyleSheet.absoluteFill` or define your own absolute positioning styles instead.
153+
154+
```diff
155+
- const styles = StyleSheet.absoluteFillObject;
156+
+ const styles = StyleSheet.absoluteFill;
157+
```
158+
159+
### Other Breaking Changes
160+
161+
#### General
162+
163+
- Removed deprecated TypeScript type aliases — use the types directly.
164+
- `Pressable` no longer unmounts event listeners in hidden `Activity`.
165+
166+
#### Android
167+
168+
- Re-added `receiveTouches` to `RCTEventEmitter` with default no-op.
169+
- `ReactTextUpdate` is now internal.
170+
- Removed support for `ReactZIndexedViewGroup`.
171+
- Multiple classes deprecated or removed as legacy architecture cleanup.
172+
- Deprecated `UIManagerHelper` methods and classes.
173+
- Removed `CatalystInstanceImpl` and other legacy architecture classes.
174+
- Stubbed out `NativeViewHierarchyManager`.
175+
176+
#### iOS
177+
178+
- Deprecated `RCTHostRuntimeDelegate` and merged into `RCTHostDelegate`.
179+
- Fixed duplicate symbol error when using `React.XCFramework` (via `fmt` bump to 12.1.0).
180+
181+
## Other Changes
182+
183+
- **Metro** bumped to `^0.84.0`.
184+
- **React** updated to consume Hermes `250829098.0.10`.
185+
- **Yoga**: `YogaNode` migrated to Kotlin on Android.
186+
- **Accessibility**: Deprecated `AccessibilityInfo.setAccessibilityFocus` in favor of `AccessibilityInfo.sendAccessibilityEvent`.
187+
- **TypeScript**: Multiple utility type transformations (`$Values`, `mixed`, `$ReadOnly`, `$ReadOnlyArray`).
188+
- **View Transitions**: New feature flag `viewTransitionEnabled` created.
189+
- **Android Build**: Allow specifying dev server IP via Gradle property.
190+
- **Android Build**: Re-added `prefabPublishing=true` for building from source.
191+
- **iOS Build**: Added support for clang virtual file system in `React.XCFramework`.
192+
193+
## Acknowledgements
194+
195+
React Native 0.85 contains over 604 commits from 58 contributors. Thanks for all your hard work!
196+
197+
<!--alex ignore special white-->
198+
199+
We want to send a special thank you to those community members that shipped significant contributions in this release.
200+
201+
- [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
202+
- [Vitali Zaidman](https://github.com/vzaidman) for Metro TLS
203+
- [Moti Zilberman](https://github.com/motiz88) for Multiple CDP Connections
204+
- [Phil Pluckthun](https://github.com/kitten) and [Alex Hunt](https://github.com/huntie) for the Jest Preset migration
205+
206+
Moreover, we also want to thank the additional authors that worked on documenting features in this release post:
207+
208+
<!-- TODO: Add blog post co-authors -->
209+
210+
## Upgrade to 0.85
211+
212+
:::info
213+
214+
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).
215+
216+
:::
217+
218+
#### Upgrading
219+
220+
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).
221+
222+
#### Create a new project
223+
224+
```text
225+
npx @react-native-community/cli@latest init MyProject --version latest
226+
```
227+
228+
#### Expo
229+
230+
If you use Expo, the next SDK, SDK 56, will be shipped with the next stable release of 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

0 commit comments

Comments
 (0)