Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Official Expo team skills for building, deploying, and debugging Expo apps — fine-tuned for Claude Code.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/new-architecture.md
1# New Architecture23The New Architecture is enabled by default in Expo SDK 53+. It replaces the legacy bridge with a faster, synchronous communication layer between JavaScript and native code.45## Documentation67Full guide: https://docs.expo.dev/guides/new-architecture/89## What Changed1011- **JSI (JavaScript Interface)** — Direct synchronous calls between JS and native12- **Fabric** — New rendering system with concurrent features13- **TurboModules** — Lazy-loaded native modules with type safety1415## SDK Compatibility1617| SDK Version | New Architecture Status |18| ----------- | ----------------------- |19| SDK 53+ | Enabled by default |20| SDK 52 | Opt-in via app.json |21| SDK 51- | Experimental |2223## Configuration2425New Architecture is enabled by default. To explicitly disable (not recommended):2627```json28{29"expo": {30"newArchEnabled": false31}32}33```3435## Expo Go3637Expo Go only supports the New Architecture as of SDK 53. Apps using the old architecture must use development builds.3839## Common Migration Issues4041### Native Module Compatibility4243Some older native modules may not support the New Architecture. Check:44451. Module documentation for New Architecture support462. GitHub issues for compatibility discussions473. Consider alternatives if module is unmaintained4849### Reanimated5051React Native Reanimated requires `react-native-worklets` in SDK 54+:5253```bash54npx expo install react-native-worklets55```5657### Layout Animations5859Some layout animations behave differently. Test thoroughly after upgrading.6061## Verifying New Architecture6263Check if New Architecture is active:6465```tsx66import { Platform } from "react-native";6768// Returns true if Fabric is enabled69const isNewArch = global._IS_FABRIC !== undefined;70```7172Verify from the command line if the currently running app uses the New Architecture: `bunx xcobra expo eval "_IS_FABRIC"` -> `true`7374## Troubleshooting75761. **Clear caches** — `npx expo start --clear`772. **Clean prebuild** — `npx expo prebuild --clean`783. **Check native modules** — Ensure all dependencies support New Architecture794. **Review console warnings** — Legacy modules log compatibility warnings80