Hey notJust Developers,
Expo SDK 54 is here and it brings lots of amazing updates:
- React Native 0.81 & React 19.1
- iOS 26 Liquid Glass support
- Android 16 compatibility
- Reanimated 4 support
- Precompiled React Native builds that cut iOS build times by up to 10x and so much more.
This is also the final release supporting the Legacy Architecture, so if you haven't migrated to the New Architecture yet, now's the time to start planning.
I want to share with you the things that I am most excited about.
Missed other conferences? No worries - React Universe Conf is happening September 2–4, 2025, in Wrocław, Poland. It brings together developers and thought leaders to explore the latest trends, share cutting-edge insights, and push the boundaries of what's possible with React and React Native.
Use promo code NJD20 for 20% off your ticket, and be part of something unforgettable.
Precompiled React Native for iOS
Starting with React Native 0.81 and Expo SDK 54, React Native on iOS and its dependencies will be shipped precompiled alongside the source. That means our build times are reduced significantly - up to 10x faster.
This will have a huge impact on smaller projects where React Native compilation was taking most of the time. In larger projects, the improvement will be less dramatic because other libraries and dependencies still need to be compiled at build time.
But honestly, long build times are one of the most painful problems of native development, so any reduction makes me happy.
✨ iOS 26 and Liquid Glass Support
SDK 54 introduces full support for iOS 26's new Liquid Glass design language, giving your apps that premium, native feel that users expect.
You can now create Liquid Glass app icons using the new Icon Composer app (macOS only) and set them in app.json
as the "ios": { "icon": "./assets/app.icon" }
.
The real magic happens with Expo UI, which is now in beta. You can use Liquid Glass modifiers and buttons to build some truly stunning UI.
With Native tabs (also in beta), we can even use Liquid Glass for our bottom tabs.
To test the new Liquid Glass features, you'll need to build your app using Xcode 26 Beta and run it on iOS 26. If you're building on EAS, you can opt in to use Xcode 26 by setting the image
to macos-sequoia-15.5-xcode-26.0
.
Android 16 (API 36)
React Native for Android now targets Android 16 / API 36, which brings some important changes:
- Edge-to-edge will be enabled in all Android apps, and cannot be disabled.
SafeAreaView
from react-native
is now deprecated in favor of react-native-safe-area-context
. If you haven't migrated yet, now's the time.- Predictive back gesture is enabled, showing a preview of the screen you'll navigate to when you swipe back.
Link Previews
One of my favourite new features in SDK 54 is Link previews (aka peek and pop) for Expo Router.
This brings that smooth iOS experience where you can long press a link and see a preview of the page before actually navigating there.
Best part? It takes just 4 lines of code to implement:
<Link href="/about">
<Link.Trigger>About</Link.Trigger>
<Link.Preview />
</Link>;
You can even add context menus next to the preview using Link.Menu
and Link.MenuAction
. Pretty exciting stuff.
Expo updates
Expo Updates, the client-side library that handles Over-the-air (OTA) updates, got some really useful new features that make it much more customizable.
Runtime Header Overrides
You can now override update request headers at runtime to dynamically point the updates at different channels. This is perfect for implementing different update channels for employees vs end-users:
Updates.setUpdateRequestHeadersOverride({
"expo-channel-name": isEmployee ? "staging" : "production",
});
Custom Reload Screens
Updates.reloadAsync()
now accepts reloadScreenOptions
to customize the UI shown while your app reloads. No more jarring blank screens:
Updates.reloadAsync({
reloadScreenOptions: {
backgroundColor: "#fa0000",
image: require("./assets/images/reload.jpg"),
imageResizeMode: "cover",
imageFullScreen: true,
fade: true,
},
});
Download Progress Tracking
The useUpdates()
hook now includes a downloadProgress
property to track asset download progress during updates. Perfect for showing progress bars to users.
React Compiler
React Compiler is now enabled by default in new Expo projects. This means automatic memoization of your React components without writing useMemo
and useCallback
everywhere.
When you run npx expo start
, you'll see "Experimental React Compiler is enabled" in your logs. You can also see which components are being optimized by pressing J
in Expo CLI and checking the components panel.
The Meta team is actively supporting React Compiler, so it's ready for production use in most apps.
Other Notable Updates
Here are some other exciting things coming to Expo SDK 54:
- React Native Reanimated 4 support that brings CSS Animations & Transitions
- Better debugging with import stack traces and owner stacks enabled by default
- expo-app-integrity - New security package for app verification (DeviceCheck on iOS, Play Integrity on Android)
- expo/blob - New package for binary data handling (W3C compliant)
- Improved autolinking that better handles transitive dependencies
Remember, this is the last SDK to support the Legacy Architecture, so start planning your migration to the New Architecture if you haven't already!
🔁 In case you missed it
 Build a Full Stack mobile app in just 8 HoursYou'll learn practical skills needed to build powerful and scalable mobile apps using a tech stack trusted by top mobile developers. By the end of this tutorial, you'll have built a Reddit Clone with a beautiful Frontend and powerful Backend. | |  Tools I use to build mobile apps FAST with React NativeI’ll walk you through my complete tech stack for building modern, production-ready mobile apps - fast. From the frameworks and libraries I use daily, to the AI tools and IDEs that supercharge my workflow, you’ll get an inside look at how I ship scalable apps. |
Did you learn something new today?
If you found this email valuable, forward it to one friend or coworker who can also benefit from it. That would be much appreciated 🙏
| | Vadim SavinHelping you become a better developer together with the notJust.dev team |
{{ snippet.footer-promo }}