๐ ๐ Expo SDK 58 beta is out. Built for iOS 27 on React Native 0.88 RC, with ๐๐ก๐๐-๐๐๐-๐๐๐๐๐๐๐ for Siri, @๐๐ก๐๐/๐๐๐๐๐-๐๐๐ for coding agents, and Expo Modules 2.0 in beta....and tons more.
๐๐๐ก ๐๐ก๐๐ ๐๐๐๐๐๐๐ ๐๐ก๐๐@๐๐๐ก๐ --๐๐๐ก
Tons of delicious details in the changelog:
While you debate if you should switch to native, I've implemented iOS Gallery zoom interaction, using React Native and Expo, and feels incredibly smooth.
Recreating this was living in my head over 4 years without paying, now I think it's a good time to show whatโs possible.
Itโs funny that we still have this React Native vs. native discussion from the early times of it. React Native doesnโt stop you from building a performant app, and going fully native doesnโt automatically give you performant apps either.
You can build performant, delightful things with React Native.
Being able to vibe code React Native apps with expo and codex computer remote on my phone is pretty amazing. 90% of the job is editorial and quality control.
expo-device-hub, new from @expo, turns your browser into a local device dashboard ๐ฑ
- live stream of every iOS sim + Android emulator
- tap, swipe, scroll, type in the page
- boot and shut down without Xcode or Android Studio
- flip dark mode, and more
bun expo install expo-device-hub, then bun expo start. The link prints in your terminal :)
Build uncompromising high-performance, high-fidelity apps with React. What you see is not the Apple Messages app, nor is it meant to be 1:1. Rather it serves as an aspirational and real example of UI/UX that is possible.
Every detail from the bubble animations to keyboard gestures to scroll view insets and safe areas to parallax timestamps required care and attention.
Quality UIs come from caring hard. The little chat bubble tails that morph away when the next message animates in. Timestamps that scroll at a different rate than the bubbles. Peek gestures powered by UIKit that lift a chat bubble, tail and all, with a gentle haptic pulse.
The subtle shadow of the text composer and responsively sliding down the keyboard in pixel-perfect concert. The composer shrinking its width to fit iPhoneโs rounded bezel. The beautiful Liquid Glass refractions have the level of glassiness chosen by the user (new in iOS 27).
Scroll view insets that adjust to fit the home bar and keyboard dynamically, creating a sense of depth as the chat bubbles are slightly visible as they scroll under the keyboard. Keeping the keyboard on screen if the prior screen already presented it. Sliding the keyboard and composer with the screen when the user drags to navigate back.
I am excited to explore using the new iPhone Duo view controllers natively with React when the time comes. There is always room for innovation and improvement.
This chat demo runs at 120 FPS on iOS 27 even on my phone thatโs four versions old now. There are several approaches to high-performance lists. I explored a new Expo scroll view that uses the native gesture systems along with react-nativeโs VirtualView (codenamed โFlingโ to reflect the speed of flinging a scroll view), which Metaโs React team designed to prioritize scroll momentum with Reactโs scheduler. There are tradeoffs with other scroll strategies for how the scroll views gracefully degrade, and they can be swapped out based on whatโs best for your appโs use case.
And, by virtue of using modern React, high-priority events like user gestures can preempt lower-priority ones like a network response.
Let us dispel any myth that using React requires compromising on beautiful, smooth, user-friendly UI/UX that Uses the Platform.
Let us dispel any myth frame-perfect UI coordination is not achievable. The Hermes thread and the UI thread can coordinate when needed, like for controlled text inputs.
Let us dispel any myth that React Nativeโs performance is impacted by a bridge, let alone has a bridge. Bridgeless JSI and the Fabric renderer are here for apps that use the New Architecture.
What about Android? The app runs and Iโll share a screenshot from my cloud agentโs emulator. With some attention to detail dedicated to Android Iโm confident crafted UX is attainable. Iโve spent my tokens once and have a structural head start everywhere.
One more thing! Most of this chatโs application code is written with
Introducing Legend Diff!
Handles repos, PRs, and .diff with over 1M+ lines
< 1/2 bounce
20 MB app
45 MB RAM
Unified/split
Syntax highlighting
React Native macOS
Open source
If it's not the fastest app on your Mac, repost and reply for a full refund.
Weโre rebuilding Notion natively on mobile. Itโs early, but here is how it feels now!
What frustrates you Notion on your phone today? I want to hear and improve!
I will say that the React Native community is one of the best, most welcoming, kindest, most supportive communities around.
I have regular chats with all those folks. Expo, Callstack, Software Mansion, Marc, even Shopify, Microsoft, Amazon, all of them. Friends, all of them.
Something to celebrate. But I think thereโs change arriving, I know this. Itโs a little sad.
While others imagine what life will be like after iPhone Duo drops (there wonโt be any way to test it until Xcode 27.1), weโre focusing on whatโs here and now. There are lots of cool improvements Apple is bringing with iOS 27:
๐ header minimization and restoration behavior
๐ prominent tab (no need for workarounds with search)
๐ header item visibility priority
๐ placing tabs in the sidebar (larger iPhones only), and more
Weโll support all of it in upcoming versions of react-native-screens. Oh, and iPhone Duo will be supported as well ๐ซก
working on the @expo EAS app this evening with an early preview of our cloud simulator service. finding a lot of little UI/UX bugs that i'd usually discover the night before a public release.
Important context:
1. The Shop app was not yet migrated to React Native's new architecture
2. The new architecture was initiated, in large part, by Meta's need to improve startup time
So, the one thing that was almost certain to improve startup time hadn't happened yet.
Engineers today run several agents in parallel. On a React Native app, those agents fight over ports, simulators, and rebuilds.
Today we're open-sourcing Stim, our agent-first CLI that gives each agent its own isolated RN/@expo environment.
Just merged toolbar/navigationstackview API in Expo UI which auto-adapts for duo.
Anything that works in SwiftUI, is available in Expo UI.
We also have UIKit versions of toolbar/Split view API in expo-router
tldr; RN/Expo is more than ready to support foldables ๐