iOS PlatformUpdated April 2026

iOS widgets,
explained for builders

iOS widgets are persistent, glanceable views your app can pin to the Home Screen, Lock Screen, Today View, and StandBy. They are not Live Activities — widgets are for ambient information, not real-time events.

Quick answer

An iOS widget is a small SwiftUI view that lives outside your app — on the Home Screen, Lock Screen, Today View, or StandBy — and shows glanceable information that is updated by your app on a schedule. Widgets are best for ambient info (weather, calendar, stocks). For event-driven, real-time info use a Live Activity instead.

What Are iOS Widgets?

Widgets were introduced in iOS 14 and have grown every year since — Lock Screen widgets in iOS 16, interactive widgets in iOS 17, StandBy widgets on iOS 17+, and richer Material-ish widgets in iOS 18+.

Conceptually, a widget is a SwiftUI view that the system snapshots periodically and renders outside your app. Your app supplies a timeline of future values it expects to show, and iOS picks when to render which entry. Widgets cannot animate freely or run continuous code — that is the contract that lets them sit on the Home Screen all day without draining your battery.

Where iOS Widgets Live

Home Screen

Small, medium, large, and extra-large tiles you can pin in place of (or alongside) app icons.

Lock Screen

Inline text under the clock, plus circular and rectangular widgets above it.

Today View (swipe right)

The legacy widget feed. Still useful and still supported.

StandBy mode (iOS 17+)

When the iPhone is on a charger in landscape, widgets render large and rotate via Smart Stack.

iPad Home Screen and Lock Screen

Same widget kinds as iPhone, plus the extra-large family.

macOS Sonoma+ desktop

iOS widgets render on the Mac desktop and in Notification Center via a continuity feature.

Widget Sizes & Families

1

Home Screen sizes

systemSmall (2x2 grid spaces), systemMedium (4x2), systemLarge (4x4), systemExtraLarge (4x4 wider on iPad). Pixel size depends on device.

2

Lock Screen sizes

accessoryInline (single line below the clock), accessoryCircular (icon or gauge), accessoryRectangular (small banner). Tinted for legibility.

3

StandBy sizes

systemSmall and systemMedium widgets are auto-promoted into StandBy. Optimize your design for the larger render.

How the Widget Refresh Budget Works

Widgets do not run continuously. Your widget extension is asked for a timeline — an array of TimelineEntry values with future dates. iOS pre-renders these on its own clock and picks one to show based on the entry's date and the system load.

  • Apple targets “a few dozen reloads per day” per widget — so do not expect a refresh every minute.
  • Reload “hints” like WidgetCenter.shared.reloadAllTimelines() ask iOS to refresh, but the system still decides.
  • Use .never, .atEnd, or .after(date) reload policies to express intent.
  • Network calls inside the widget are best handled by background fetches in your main app, then shared via App Groups.

If you need real-time, this is where Live Activities take over.

Interactive Widgets (iOS 17+)

Since iOS 17 widgets can include Button and Toggle controls backed by App Intents. The intent runs in the background; the widget then refreshes to show the new state.

Good interactive-widget patterns:

  • Marking a Reminder or to-do as done.
  • Toggling a HomeKit accessory or shortcut.
  • Skipping or pausing audio playback.
  • Casting a vote or saving for later.
  • Quick-add actions (water intake, expense, journal).

Widgets vs Live Activities

Widgets

Permanent, ambient, refresh on a schedule, support multiple sizes, can be interactive but not real-time.

Live Activities

Temporary, event-driven, update in real time on Lock Screen + Dynamic Island, dismissed when the event ends.

Both ship inside the same WidgetKit extension target. A weather app, for example, might have a Home Screen widget showing today's forecast and a Live Activity that appears only during a severe-weather alert. For more, see iOS Live Activities and Dynamic Island.

How to Build an iOS Widget

  1. In Xcode, add a new Widget Extension target to your app.
  2. Define a TimelineEntry struct and a TimelineProvider.
  3. Build a SwiftUI view for each supported widget family.
  4. Configure a StaticConfiguration or AppIntentConfiguration in the widget's entry point.
  5. Share data with your main app via an App Group + UserDefaults or a shared SQLite/Core Data store.
  6. Call WidgetCenter.shared.reloadAllTimelines() from your app whenever data changes meaningfully.

If you are building cross-platform with React Native or Expo, the widget itself stays SwiftUI but the data layer can come from JavaScript via a small native module. Newly automates the whole thing.

Frequently Asked Questions

What are iOS widgets?

iOS widgets are small, glanceable views from your app that the user can pin to the Home Screen, Lock Screen, Today View, or StandBy. They render via the WidgetKit framework, are written in SwiftUI, and refresh on a system-managed schedule.

What is the difference between an iOS widget and a Live Activity?

Widgets are permanent and refresh on a schedule the system controls (typically not real-time). Live Activities are temporary, tied to an event, and update in real time on the Lock Screen and Dynamic Island. Both ship inside the same WidgetKit extension.

What sizes do iOS widgets support?

Home Screen widgets come in small, medium, large, and (on iPad and iOS 15+ iPhone) extra large. Lock Screen widgets support inline (single line of text), circular (gauge or icon), and rectangular. Each system widget family has fixed pixel sizes per device class.

How often do iOS widgets refresh?

WidgetKit gives the system a list of timeline entries with target reload times. iOS schedules updates based on system load, battery, and how often the user looks at the widget. Realistically, expect a refresh every 15–60 minutes, not in real time.

Can iOS widgets be interactive?

Yes, since iOS 17. Widgets can include Buttons and Toggles backed by App Intents, which run small actions in the background without launching the app. This makes widgets more useful for quick actions like marking a task done or playing a track.

Can I build iOS widgets in React Native or Expo?

You write the widget itself in SwiftUI inside a WidgetKit extension, but the data can be shared with your React Native or Expo app via App Groups and UserDefaults / file storage. Newly automates this when you build a native iOS app from a prompt.

Ship an iOS app with widgets and Live Activities.

Newly turns a one-line idea into a production-ready iOS + Android app — widgets, Live Activities, push, and the React Native source code, all yours.