We are building a media application that uses Live Activities and Dynamic Island extensively on iPhone. On macOS, we currently need to build separate UI surfaces such as menu bar extras, widgets, and custom overlays. Are there any recommended patterns for creating a persistent, glanceable activity experience on macOS that maintains parity with Live Activities on iPhone?
Thanks for the post. This subject is not about Widget and Live Activities, its more about SwiftUI on the macOS, it seems like.
In macOS you can achieve a highly comparable user experience by combining a few native macOS paradigms. Since you are building a media application, the goal is to provide a persistent, globally available, and glanceable UI.
The closest conceptual equivalent to the Dynamic Island on macOS is a Menu Bar Extra. It is persistently visible, globally accessible regardless of the active application, and supports both a "compact" and "expanded" (popover) state.
You can dynamically update the label of the MenuBarExtra to show live data just like the compact presentation of the Dynamic Island.
Use the .window or .popover style to reveal a rich SwiftUI view when clicked. Keep the menu bar string concise. macOS menu bar space is limited, especially on MacBooks with a physical notch.
Do not try to force a literal "Dynamic Island" UI onto the Mac desktop. Instead, lean into Menu Bar Extras for live, interactive, globally available controls.
Looking forward to see what you come out with.
Albert WWDR