This gives you an iOS home-screen widget and a Live Activity (Lock Screen and Dynamic Island) through expo-widgets. The widget's layout is src/widgets/app-widget.tsx: a React component marked with the 'widget' directive and built from @expo/ui/swift-ui views, which Expo compiles into a real WidgetKit extension. The app feeds it through src/lib/widgets.ts, which implements the shim - widgets.update({ title, value, subtitle, symbol }) hands a new snapshot to the widget, and does nothing in Expo Go, on Android and on web. The weather demo pushes the current temperature to it every time a forecast loads. The Live Activity is src/widgets/app-activity.tsx, driven by widgets.activity.start / update / end; the weather demo's Show on Lock Screen button starts it and every forecast refresh updates it.
When to pick Expo Widgets
Pick Expo Widgets when a glance is worth a Home Screen slot: it adds an iOS widget extension built with @expo/ui SwiftUI components, written in TypeScript in src/widgets/app-widget.tsx, in small and medium sizes, plus a Live Activity for the Lock Screen and the Dynamic Island (widgets.activity.start()). It needs a dev build.
At a glance
- Runs in Expo Go
- No - needs a development build
- Files added
- 4
- npm packages
- 1
- Keys to paste
- None
- Included in
- Starter and Pro
- Tests included
- 1
Set it up
bun run setup --widgets expo-widgetsSetup copies the module in, installs SDK-matched versions and removes the options you did not pick. Then bun run doctor lists every key still missing, with a link to where you get it. The step-by-step guide is in the Expo Widgets docs.
Wiring it by hand instead? Read the guide: Expo widgets on iOS: a working setup.
Questions
Can I use Expo Widgets in Expo Go?
No. This module needs a development build: npx expo run:ios or npx expo run:android locally, or eas build --profile development in the cloud.
What do I need to set up Expo Widgets in an Expo app?
Only bun run setup --widgets expo-widgets. There are no API keys to paste; bun run doctor checks the result.
Does the ReadyNative free tier include Expo Widgets?
No. It ships in Starter and Pro (one payment, lifetime updates); the free tier ships with widgets switched off.
Can I build the app without Expo Widgets?
Yes. Pick none for widgets (bun run setup --widgets none) - no app extension, widgets.update() is a no-op.
Which Expo Widgets version does it install?
For Expo SDK 57: expo-widgets ~57.0.28. Setup installs Expo packages with expo install, so they match the SDK.
Get it
Expo Widgets ships in Starter and Pro: one payment, lifetime updates. See pricing or browse every module.