Expo SDK 41 – Highlights
Android apps now target Android R (11 / SDK 30).
This comes with some significant changes for location permissions, media library (related to StorageAccessFramework), and constants. Please note that these changes also impact SDK <= 40 projects in Expo Go, but they will not impact SDK <= 40 standalone apps. Refer to expo.fyi/android-r for more information.
The recommended version of react-native-reanimated has been updated to v2.
If you would like to use v2 features in your app, you need to add the Reanimated v2 Babel plugin. You can continue to use v1 features (eg: those used by React Navigation v5) without adding the new Babel plugin. Please note that if you use the new features from v2, you will not be able to use remote JS debugging in your app! If you use v2 APIs, JS debugging is only possible using Flipper and Hermes, which are not yet fully supported in the managed workflow. (We plan to investigate integrating Hermes during the next SDK cycle, but we don’t currently expect to have it ready for SDK 42.)
lottie-react-native has been updated to the latest version (3.5.0).
Your existing animations should continue to work as before, but if you encounter any issues please file an issue and share the animation file.
The new version of react-native-screens (v3) “enables screens” by default.
If you encounter any related issues, you can report the issue and opt out with enableScreens(false). Be sure to update to the latest v4 patch release of React Navigation if you use v4.
Improvements were made across the SDK to ensure compatibility with EAS Build.
A big part of this SDK has been making the necessary underlying changes to support EAS Build for managed projects. You can now use EAS Build with Expo managed apps to reduce the size of your standalone apps by up to 10x! Learn more about the latest EAS Build updates.
The expo package is now 93% smaller in production and better than ever.
We’ve simplified the experience so the .expo extension is no longer needed (and so we removed it), and neither is the –target bare|managed flag — updates will run in either context provided the native runtime is compatible. We’ve improved consistency across the managed and bare workflow, removed legacy code, and improved tree-shaking on the package using @expo/metro-config.
To see the full list of new features and fixes, refer to the changelog!
🏡 Expo Go
We changed sign in to use expo-web-browser so we can leverage our existing web auth flow with two-factor-authentication.
You can now see teams and organizations that you are a part of in the Profile tab, and their associated projects show up in your recent projects below.
🌐 Expo CLI
Integrated Developer Tools: Open the developer menu, inspect elements, and monitor performance all from the CLI. Just run expo start then press “m” to toggle the dev menu, and “shift+M” to toggle the performance monitor or element inspector across native apps.