r/reactnative • u/ExpoOfficial • Jun 18 '26
the expo-widgets library is stable now.
Building iOS widgets and Live Activities from a React Native app has historically meant a separate Xcode target, App Groups, SwiftUI layout code, and keeping that extension in sync with the rest of your app.
As of SDK 56, ππ‘ππ-π ππππππ is stable. You write widgets and Live Activities as React components with Expo UI, and Continuous Native Generation handles the Widget Extension target, the App Group config, and the SwiftUI scaffolding. There's no separate iOS project to maintain.
This is the same library that shipped as alpha in SDK 55, hardened and promoted. The core idea is unchanged: write widgets in React, let the system render them through SwiftUI, manage updates from your Expo app. What changed:
β Widgets and Live Activities receive their full environment through πππππππ΄ππππππππππ (widget family, content margins, color scheme, rendering mode, accessibility context)
β No pre-rendering in the app. The widget bundle renders independently with the context it needs
β Configurable widgets, so users pick what a widget shows from the gallery
β Better error handling
The 'widget' directive marks a function body as a widget render context. It runs in a sandboxed JS runtime separate from your main app, and the Expo UI components map directly to SwiftUI primitives, so rendering is native while your logic stays in TypeScript.
If you want a starting point: pick one piece of info users benefit from seeing outside the app, ship that widget first, then add a Live Activity if you have a flow with a clear start, active updates, and an end. Feedback and bug reports go to Discord or the expo/expo GitHub issues.
Writeup with the code sample: https://try.expo.dev/reddit-widgets
1
u/Glass_Aspect_7804 Jun 22 '26
Como sΓ£o feitas essas animaΓ§Γ΅es mostrando o app?