Skip to content

Historical archive

This page records a dated plan, audit, or research context, not a current product contract. Project status distinguishes current source behavior, published releases, and unfinished acceptance gates.

Surface 7: system extensions (notch, widgets, Finder)

Column 7 of the surface table, checked 2026-10-25. Verdicts as in Surface 1. This column mixes three very different things, so treat them separately:

Kind Apple API Process Who draws it
Widgets (desktop, Notification Center) WidgetKit, macOS 11; desktop widgets macOS 14 Extension, run by the system on a timeline The system renders your SwiftUI views
Finder integration Finder Sync extension (badges, toolbar item, context menu in watched folders); Action/Share extensions; Shortcuts Quick Actions; Services Extension or Shortcut Finder
Notch UI None. NSScreen.safeAreaInsets and auxiliaryTopLeftArea/auxiliaryTopRightArea (macOS 12) only tell you where the camera housing is Your app's own borderless window You

Corrections

  1. The notch is not a system surface. Apple has no notch API; notch apps (NotchNook, Boring Notch, Hand Mirror) are ordinary borderless windows placed over the menu bar. Apple's guidance is the opposite: content behind the camera housing is obscured, and the system full screen avoids it (HIG Going full screen). Notch width = screen width − auxiliaryTopLeftArea.width − auxiliaryTopRightArea.width; nil areas mean the screen has no housing (external displays, older Macs), so the feature must fall back. True black #000000 is a convention that hides the seam, not an Apple rule.
  2. No published memory caps for macOS extensions. The table's "~30–50 MB" is folklore from iOS widgets; Apple's WidgetKit docs instead document a refresh budget: typically 40–70 reloads a day for a frequently viewed widget (about every 15–60 minutes), and "widgets … don't support continuous, real-time updates". Design for that budget and keep the extension small anyway.
  3. Widget sizes are not fixed numbers. WidgetKit: "The sizes of widgets may vary across devices … avoid using fixed values." Mac families: systemSmall, systemMedium, systemLarge, systemExtraLarge (macOS 14). Use the 16 pt standard margin (HIG Widgets).

Cell by cell

Dimension Table says Verdict What to build
Philosophy In-context power without opening the app Apple HIG Widgets: glanceable, relevant; no app-like layouts.
Window anatomy Notch box, widget squares, Finder menu rows Apple (widgets, Finder) / Fix (notch, see 1)
Sizing Widgets S/M/L; notch matches the housing width Apple / see 1 and 3
Lifecycle Widgets on timelines; notch on hover; Finder actions run headless Apple (widgets, extensions) / Convention (notch) TimelineProvider; reload from the app with WidgetCenter.reloadTimelines(ofKind:), sparingly.
Materials True black notch; widgets adapt to the wallpaper Convention (notch) / Apple (widgets) On the Mac desktop, widgets render full-color or vibrant (desaturated, tinted by the wallpaper when another window is in front). Use .containerBackground(for: .widget) and semantic colors.
Typography Bold metrics 16–24, micro labels 10–11, no wrapping Apple (close) Never below 10 pt on macOS; .minimumScaleFactor over truncation; system fonts.
Controls Interactive widget buttons (Sonoma+), drop/play in the notch Apple (widgets) Buttons and toggles through App Intents (macOS 14). "An interaction with a button or toggle should do more than open the app" — for opening, use widgetURL / Link.
Keyboard Zero navigation Apple
Drag & drop Drop files into the notch; Finder Quick Actions Convention (notch) / Apple (Quick Actions) Quick Actions come from Shortcuts or an Action extension; they appear in Finder's context menu and Preview pane.
Audio/video Notch now-playing with waveform Convention No public now-playing read API for other apps' audio is guaranteed; check before promising it.
States "Click to configure in app" when data/permission is missing Apple Widgets: show a placeholder and a clear action; HIG Widgets: previews and placeholders.
Context menu Widget "Edit Widget…"; Finder Services/Quick Actions Apple Widget editing comes from AppIntentConfiguration; the system adds the menu.
Motion Notch springs out of the cutout Convention Respect Reduce Motion.
Performance Tiny RAM caps Fix (see 2) Small assets, cached on disk, App Group container for shared data.
Dock No Dock presence Apple Extensions have none; a notch app is an LSUIElement app.

Sources