Hi everyone,
I’m Amy, a product manager on the Mobile team.
Today, we’re upgrading the runtime that powers Bubble native mobile apps from Expo SDK 55 to Expo SDK 57, which also moves us from React Native 0.83 to 0.86. This is mostly an under-the-hood performance improvement, but there are a couple of things worth knowing, especially if you build plugins.
What this means for your apps
Nothing changes about how you build mobile apps on Bubble. Your editor, workflows, and elements all work exactly the same.
Your app’s end-users, on the other hand, should notice the difference. This upgrade brings smoother animations and better memory behavior during long sessions, particularly on older devices. These improvements come from performance work in React Native and Expo’s underlying libraries, and every app built on the new runtime gets them automatically.
One important change to be aware of: Expo SDK 57 raises the minimum supported iOS version to 16.4. Apps built after this upgrade won’t install on devices running anything older than that — in practice, that means the iPhone 7 and earlier. If a meaningful portion of your user base is on older hardware, this is worth factoring into your release planning.
Plugin developers: please read the changelog
Because we jumped two SDK versions (55 straight to 57), the dependency updates are substantial — and there’s a possibility that some plugins relying on these libraries will break.
If you’ve built a plugin that touches any of the packages below, please read through the full changelog, test your plugin against the new versions, and push an update if needed. Your users (and our support team) will thank you.
Here’s everything that changed:
Dependency updates
-
@expo/metro-runtime: ~55.0.6 → ~57.0.11
-
@react-native-community/datetimepicker: 8.6.0 → 9.1.0
-
@react-native-community/netinfo: 11.5.2 → 12.0.1
-
expo: ~55.0.7 → ^57.0.9
-
expo-apple-authentication: ~55.0.7 → ~57.0.1
-
expo-asset: ~55.0.9 → ~57.0.12
-
expo-audio: ~55.0.14 → ~57.0.3
-
expo-auth-session: ~55.0.8 → ~57.0.7
-
expo-blur: ~55.0.10 → ~57.0.2
-
expo-camera: ~55.0.10 → ~57.0.3
-
expo-clipboard: ~55.0.9 → ~57.0.1
-
expo-constants: ~55.0.8 → ~57.0.12
-
expo-crypto: ~55.0.10 → ~57.0.1
-
expo-document-picker: ~55.0.9 → ~57.0.1
-
expo-file-system: ~55.0.11 → ~57.0.4
-
expo-image: ~55.0.6 → ~57.0.3
-
expo-image-manipulator: ~55.0.11 → ~57.0.11
-
expo-image-picker: ~55.0.13 → ~57.0.11
-
expo-linear-gradient: ~55.0.9 → ~57.0.1
-
expo-linking: ~55.0.7 → ~57.0.6
-
expo-location: ~55.1.3 → ~57.0.11
-
expo-media-library: ~55.0.10 → ~57.0.4
-
expo-notifications: ~55.0.13 → ~57.0.12
-
expo-secure-store: ~55.0.9 → ~57.0.1
-
expo-sharing: ~55.0.19 → ~57.0.13
-
expo-splash-screen: ~55.0.11 → ~57.0.7
-
expo-status-bar: ~55.0.4 → ~57.0.1
-
expo-updates: ~55.0.14 → ~57.0.15
-
expo-video: ~55.0.11 → ~57.0.2
-
expo-web-browser: ~55.0.10 → ~57.0.2
-
react: 19.2.0 → 19.2.3
-
react-dom: 19.2.0 → 19.2.3
-
react-native: 0.83.2 → 0.86.2
-
react-native-gesture-handler: ~2.30.0 → ~2.32.0
-
react-native-reanimated: 4.2.1 → 4.5.1
-
react-native-screens: ~4.23.0 → ~4.26.0
-
react-native-svg: 15.15.3 → 15.15.4
-
react-native-webview: 13.16.0 → 13.16.1
-
react-native-worklets: 0.7.2 → 0.10.1
-
@react-native/metro-config: ^0.81.6 → ^0.86.2
-
@types/react-dom: ~19.1.0 → ~19.2.3
-
babel-preset-expo: ^54.0.8 → ~57.0.0
-
metro: ^0.83.3 → ^0.84.4
-
metro-transform-worker: ^0.83.3 → ^0.84.4
New packages
-
expo-glass-effect: ^57.0.1
-
expo-modules-core: ^57.0.11
Wrapping up
Runtime upgrades like this one are a big part of how we keep Bubble mobile apps feeling fast and reliable as the underlying ecosystem evolves. If you’re a plugin author, carve out some time to review the changelog above. And if you run into any unexpected behavior with your app or a plugin after building on the new runtime, let us know below or reach out to our support team so we can help track it down.
Happy building!
— Amy and the Mobile team