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.
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
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.
Get it
Expo Widgets ships in Starter and Pro: one payment, lifetime updates. See pricing or browse every module.