Expo SDK 56 is out π
β Expo UI is stable on iOS and Android
β iOS builds 16% faster, plus another 20% on EAS from precompiled community libs
β Android cold starts 40% faster
β Expo Router decoupled from React Navigation
β Inline native modules: write Swift and Kotlin right next to your TypeScript
β Hermes v1 by default
β Bytecode diffing on by default (~58% smaller OTA updates)
β iOS Widgets stable
β React Native 0.85 + React 19.2
It's been two months since SDK 55, and we packed in everything we could fit. Your iOS build times are going to thank you. Full changelog β
π Expo Router v56 comes with the biggest shift to the library since it launched.
You've probably already read about us forking React Navigation. In the blog below you'll get all the details but essentially we needed to fork in order to control/tune the internals. This unlocks some big improvements we can make moving forward.
Here are a few of the other highlights:
β Imports move from @πππππ-ππππππππππ/* to ππ‘ππ-ππππππ/πππππ-ππππππππππ
β A codemod handles it
β Library imports auto-rewrite for one release cycle
β Streaming SSR + πππππππππΌπππππππ
β Type-safe loaders: πππππππππππππ»πππππ, πππππππππππππ»πππππ
β Android toolbar (left, right, bottom)
β Native Tabs gains ππππππππ
Full blog β
1. Add your folder to π πππππππ³ππππππππππ in the app config
2. Run πππ‘ ππ‘ππ ππππππππ
Any Swift or Kotlin file in that folder gets compiled and autolinked. Grab it from JS with ππππππππ½ππππππΌπππππ('πΈππππππΌπππππ').
You can also stop writing TypeScript interfaces by hand. The new ππ‘ππ-ππ’ππ-πππππππππππ package reads your Swift module and generates the matching TS types. Leave it in watch mode and they update as you edit the native code.
Full post here: https://t.co/mdS8O3dK2h
Your next native module can live right next to your π°ππ.πππ‘.
In Expo SDK 56 we added inline native modules. Create a π½ππππππ πππ .ππ πππ beside your app files and write Swift there. Nothing to scaffold first.
Setup takes two steps β
π Expo Router v56 comes with the biggest shift to the library since it launched.
You've probably already read about us forking React Navigation. In the blog below you'll get all the details but essentially we needed to fork in order to control/tune the internals. This unlocks some big improvements we can make moving forward.
Here are a few of the other highlights:
β Imports move from @πππππ-ππππππππππ/* to ππ‘ππ-ππππππ/πππππ-ππππππππππ
β A codemod handles it
β Library imports auto-rewrite for one release cycle
β Streaming SSR + πππππππππΌπππππππ
β Type-safe loaders: πππππππππππππ»πππππ, πππππππππππππ»πππππ
β Android toolbar (left, right, bottom)
β Native Tabs gains ππππππππ
Full blog β
Native templates now available on App Store and Play store π
https://t.co/Zvy64CuTYH
You can now preview all the templates directly in the app and get notified about the new ones.
Built with @nativewindcss@reactnative and @expo SDK 56.
π₯ @Baconbrix is one of the elite product builders on the planet. Full stop.
Until you see it up close, every day, itβs impossible to know what it means to operate at his level. His blog post below is a real gift. Heβs distilled a handful of the practices that make him elite.
Of course we will miss Evan dearly. But mostly we feel grateful. Expo got 9 years of relentless development and uncommon vision. There will not be a single day that our team and our users do not continue to feel the impact of his work.
Thank you Evan. For everything. We cannot wait to see what you do next! π«Ά
After 9 years, I just finished my last week at Expo.
Started working on it when I was 19, and it's been the center of my life ever since.
Incredibly grateful to the team and community we built along the way!
π Today we open up the beta for our new mobile Observability service.
If you've ever shipped a release and felt uneasy for the next 24 hours...this service is for you.
@kadikraman's App.js talk from today goes into excellent detail. We'll share that link below and a page where you can get started with the beta β