React Native 0.85 — Shared Animation Backend, Jest preset moved, Metro TLS
Key Points
- New Shared Animation Backend
- Jest preset moved to @react-native/jest-preset
- Metro dev server supports TLS
Summary
React Native 0.85 delivers a new Shared Animation Backend (collaboration with Software Mansion) that moves core animation update logic into RN core, enabling native-driver layout/Flexbox animations for Animated and improved performance for Reanimated. The release also extracts the Jest preset into @react-native/jest-preset, adds Metro TLS support, and ships several DevTools improvements and breaking changes. An experimental opt-in channel for the animation backend will be available in 0.85.1.
Key Points
-
New Shared Animation Backend
- Animation engine now in core; Animated can animate layout/Flexbox/position props with the native driver.
- Experimental channel available starting in 0.85.1 — opt in per the release docs and test animation libraries (e.g., Reanimated).
-
Jest preset moved
- Preset extracted to @react-native/jest-preset to reduce core package size and increase flexibility.
- Update jest.config.js: change preset from 'react-native' to '@react-native/jest-preset'.
-
Metro TLS support
- Metro dev server accepts a tls config (ca, cert, key) in metro.config.js for HTTPS/WSS during development.
-
DevTools improvements
- Multiple CDP connections supported, macOS native tab handling, and restored request body previews in Network panel.
-
Breaking changes to act on
- Dropped support for EOL Node.js versions; require Node >= 20.19.4 (v20 supported).
- StyleSheet.absoluteFillObject removed — use StyleSheet.absoluteFill or custom styles.
- Various native API deprecations/removals (see full changelog) — run integration tests for native modules.
Migration / Action items
- Update jest.config.js:
// before
preset: 'react-native',
// after
preset: '@react-native/jest-preset',
- Ensure CI and developer machines run Node >= 20.19.4.
- Replace any uses of StyleSheet.absoluteFillObject with StyleSheet.absoluteFill.
- If you rely on animation libraries, plan to test against the experimental animation backend in 0.85.1 and coordinate with library maintainers (Reanimated has changes to leverage the backend).
- To enable HTTPS for Metro, add a tls block in metro.config.js:
// example
config.server.tls = {
ca: fs.readFileSync('path/to/ca'),
cert: fs.readFileSync('path/to/cert'),
key: fs.readFileSync('path/to/key'),
};
- Run the React Native Upgrade Helper and full test suite; verify native modules for deprecated/removed APIs.
Notes
- This release bumps Metro and updates Hermes consumption; consult the full changelog for native cleanup and platform-specific deprecations before upgrading.