Skip to content

Commit 3f3193e

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 3f3193e

2 files changed

Lines changed: 239 additions & 0 deletions

File tree

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

0 commit comments

Comments
 (0)