iOS PlatformUpdated April 2026

iOS Live Activities,
explained for builders

Live Activities are real-time, in-place updates on the Lock Screen and Dynamic Island — the iOS feature behind rideshare ETAs, delivery progress, and live sports scores. This is the data layer; the Dynamic Island is the display surface.

Quick answer

A Live Activity is a piece of iOS UI that stays pinned to the Lock Screen and the Dynamic Island for the duration of an ongoing event — a ride, a delivery, a game — and updates in place either from your app or from your server via APNs. It uses the ActivityKit framework, ships inside a WidgetKit extension, and is available on iPhone running iOS 16.1+.

What Are Live Activities?

Live Activities are an iOS feature introduced in iOS 16.1 that let an app show a live, updating view on the Lock Screen and inside the Dynamic Island while something is happening — without the user opening the app.

The mental model is “temporary, glanceable, and tied to an event.” Unlike a widget, which is permanent and refreshes on the system's schedule, a Live Activity only exists while a real event is in progress (ride, game, timer, delivery, workout) and is dismissed afterwards.

Unlike a regular push notification, which appears once and disappears, a Live Activity stays on screen and updates in place.

How Live Activities Work

Under the hood, a Live Activity is a small SwiftUI view defined inside a WidgetKit extension and managed by the ActivityKit framework. There are three pieces:

1

Activity attributes (static)

Metadata that does not change while the activity runs — the order ID, the team names, the route. Defined as a Swift struct that conforms to ActivityAttributes.

2

Content state (dynamic)

The values that update over time — current ETA, current score, current step. Updated either locally with Activity.update() or remotely with an APNs push of type "liveactivity".

3

SwiftUI views

You declare three views: lockScreen, compactLeading/compactTrailing/minimal for the Dynamic Island compact form, and an expanded view for the long-press / pull-down state.

When you call Activity.request(...) from your app, iOS starts the activity and (if requested) hands you a push token. Your server can then push updates to that token, the system merges the new content state, and the views re-render — even when the app is suspended.

Where Live Activities Appear

Lock Screen

Larger, banner-style view. Shown on every iPhone running iOS 16.1+. Best surface for richer details — progress bars, maps, multi-line text, score breakdowns.

Dynamic Island

Compact + expanded views on iPhone 14 Pro and every iPhone 15 / 16 / 17 / 18 model. Three modes: compact (around the camera), minimal (when multiple activities are active), and expanded (long-press).

StandBy mode (iOS 17+)

When an iPhone is on a charger in landscape, Live Activities appear large on the StandBy screen — useful for timers, sports, and travel.

Always-on display

On iPhone 14 Pro and later, Live Activities continue to render on the always-on Lock Screen at a reduced refresh rate.

Sizes, Timing & Limits to Plan For

  • Max duration: 8 hours active + up to 4 hours stale on the Lock Screen, then auto-dismissed.
  • Payload size: roughly 4 KB for the entire push payload including the content-state JSON.
  • Update frequency: APNs has rate limits per device. Use apns-priority: 5 for non-urgent updates; reserve priority 10 for truly time-sensitive ones.
  • One activity per request: you can have multiple concurrent activities, but the Dynamic Island only shows one at a time.
  • Permission: the user can disable Live Activities globally or per-app from Settings.

Best Use Cases

Rides & deliveries

ETAs, driver name and location, order status. Uber, Lyft, DoorDash, Uber Eats all do this.

Live sports & events

Score updates, period/quarter changes, possession indicators. Apple’s Sports app and ESPN are reference examples.

Timers & workouts

Countdown timers, intervals, current exercise, pace. Strava and Apple’s built-in Timer use this.

Travel

Boarding times, gate changes, baggage claim, ride-share to and from the airport.

Music & media (with MusicKit)

Now-playing controls and progress, available via the system MediaPlayer integration.

Productivity

Pomodoro timers, focus sessions, meeting countdowns, build status from CI.

How to Build a Live Activity

  1. Add a WidgetKit extension target to your iOS app in Xcode.
  2. Define an ActivityAttributes struct with a nested ContentState.
  3. Declare your SwiftUI views inside an ActivityConfiguration: lock screen, compact leading/trailing, minimal, expanded.
  4. In your app, start the activity with Activity<YourAttributes>.request(...) and capture the push token if you want server-side updates.
  5. Send updates locally with Activity.update(using:) or remotely with an APNs push of type liveactivity.
  6. End the activity with Activity.end(...) when the event finishes.

In React Native or Expo, the recommended path is a small native module that wraps ActivityKit. Newly handles this end-to-end so you can describe a Live Activity in a prompt and ship a real one to the App Store.

Android Equivalents at a Glance

Android does not have a single feature called “Live Activities,” but it has several primitives that, combined, achieve the same thing:

Ongoing notifications

The closest functional equivalent. See our explainer on Android ongoing notifications.

Foreground services

Keep work alive (location, audio, etc.) and surface a persistent notification.

Live Updates (Material You)

Google’s newer push to make notifications richer and more Live-Activity-like.

At a Glance / Now Playing

System-driven glance UI on Pixels — not app-controlled the way Live Activities are.

For a deep dive, jump to our Android Ongoing Notifications guide.

Frequently Asked Questions

What is a Live Activity on iPhone?

A Live Activity is an iOS feature that lets your app show real-time, glanceable information on the Lock Screen and (on supported iPhones) inside the Dynamic Island, without the user having to open the app. Examples include rideshare ETAs, food delivery progress, sports scores, and timers.

What iOS version supports Live Activities?

Live Activities were introduced in iOS 16.1. The Dynamic Island UI for Live Activities requires iPhone 14 Pro or newer (iPhone 15 series and up have it on every model). Lock Screen Live Activities work on every iPhone running iOS 16.1+.

What is the difference between a Live Activity and a push notification?

A push notification is a single, interruptive message that appears once and disappears. A Live Activity is a persistent, in-place piece of UI that updates over time on the Lock Screen and Dynamic Island. Live Activities are powered by ActivityKit and can also be updated via APNs push (using the new "liveactivity" push type).

How long can a Live Activity stay on screen?

A Live Activity can be active for up to 8 hours and remains visible on the Lock Screen for up to 4 additional hours after it ends (a "stale" state) — so up to 12 hours total. After that the system dismisses it.

Can React Native or Expo apps use Live Activities?

Yes. Live Activities are a native iOS feature and require a small Swift WidgetKit extension, but the data and triggers can come from a React Native or Expo app via a bridge or community modules. Newly handles this for you when you build a native iOS app.

How do I update a Live Activity from my server?

Use the new ActivityKit push token your app obtains when starting the activity, and send a push to APNs with the "liveactivity" push type. The payload includes a content-state JSON that the system merges into the running activity.

Ship a real iOS app with Live Activities.

Newly turns a one-line idea into a complete native iOS & Android app with Live Activities, Dynamic Island, push, and widgets — and gives you the React Native source code.