FlowOS Widgets

A suite of macOS widgets that live beside your anchors — dispatch, now-playing, and the Dodgers.

Swift SwiftUI WidgetKit App Groups XcodeGen

The problem

The FlowOS anchors are the whole point — but they live inside an app, which means opening the app to see them. I wanted the anchors to be peripheral — present when I glanced at Notification Center, invisible otherwise. And once I was building one widget, it made sense to build the rest of the ambient data I actually check throughout the day.

The approach

Four widgets, one bundle. Anchors shows today’s commitments with inline check state. Dispatch renders the morning briefing as a compact card. Music shows now-playing from Apple Music with artwork. Dodgers tracks the next game and current score. Each widget is a single SwiftUI view, configured once and then quietly present.

How it works

All four widgets share an App Group container with the main FlowOS Native app, so they read from the same SwiftData store without duplicating sync logic. WidgetKit timelines refresh on intervals appropriate to each widget — anchors update on-change, Dodgers polls for live game state, Music listens to now-playing changes. The whole bundle is generated via XcodeGen from a single project.yml so adding a new widget is copy-paste plus one config entry.

Results

  • Four widgets in a single bundle — Anchors, Dispatch, Music, Dodgers
  • App Group shared storage means widgets read the same data as the main app with zero network calls
  • Per-widget refresh cadence — on-change, on-poll, or on-event depending on what the data actually does