I'm building a Live Activity using ActivityKit in iOS, and I'm trying to understand how apps like Uber or Lyft manage to keep the Dynamic Island always in its expanded state, without transitioning through the compact phase.
In my implementation, the Live Activity always starts in the compact state, and only expands temporarily when I interact with it. I've tried the following:
-
Updating the ContentState frequently using activity.update(using:)
-
I tried updating the activity every 1 second, but it didn’t make a difference.
-
Leaving the compactLeading, compactTrailing, and minimal regions empty using EmptyView() — also didn’t change the behavior.
-
Delaying the initial update by 1 second — no effect.
What I'm trying to figure out:
Is there any way to programmatically force or request the Dynamic Island to stay in the expanded state?
Could this behavior be achieved through push updates, using apns-push-type: liveactivity and a high priority (apns-priority)?
What I’m trying to achieve is similar to the behavior shown in the images below — the apps do not transition to the compact island, but instead displays the expanded view immediately.
Example: