Capstone 6 — PlanBoard

Tagline: A true universal-binary SwiftUI app — a Kanban-style planning board that runs natively on iPhone, iPad, and Mac from a single codebase, with SwiftData + CloudKit, WidgetKit, AppIntents, and a fully native macOS shell (toolbar, CommandMenu, multi-window).

Tech stack: SwiftUI multiplatform · SwiftData + CloudKit · WidgetKit · AppIntents · macOS toolbar + CommandMenu · multi-window

Time budget: ~3 weeks

What this capstone proves:

  • You can ship a genuine universal binary — not Catalyst, not an iPad app that runs on Mac, but native Mac + iPad + iPhone from one codebase
  • You can make the cross-platform decisions explicit — when to share, when to split, when to use #if os(macOS)
  • You can build a Mac that feels native — sidebar, toolbar, CommandMenu, multi-window, drag-and-drop, keyboard shortcuts, menu bar item
  • You can layer WidgetKit + AppIntents on top across all platforms
  • You can document the entire architecture decision record so a future maintainer (or interviewer) understands every choice

The 30-second pitch

“PlanBoard is a Kanban app shipped as a true universal binary — iPhone, iPad, and Mac, one codebase. SwiftUI handles 80% of the layout; the last 20% is platform-specific code I deliberately split. SwiftData + CloudKit syncs across all three. The Mac app has full sidebar + toolbar + CommandMenu + multi-window + a menu bar item. The widget shows your top three cards. AppIntents expose ‘Add card’ / ‘Move card’ to Shortcuts and Siri. The interesting work was the decision record — for every #if os(macOS) block I added, I wrote a one-line rationale that lives in a platform-decision-record.md file. So when someone asks ‘why is the sidebar layout different on Mac,’ I have a written, dated answer rather than a guess.”

Why this capstone

This is the senior-candidate capstone. It synthesizes everything from the first five — SwiftData, CloudKit, WidgetKit, AppIntents — and adds the hardest cross-platform challenge: making one app feel native on three platforms without devolving into either “iPad app on Mac” mediocrity or three-codebases sprawl.

The platform-decision-record.md file is the interview artifact. Every cross-platform Apple app has these decisions; almost none have them documented. Having yours documented is a strong senior signal.

Files

  1. requirements.md — feature list, user stories, per-platform expectations
  2. architecture.md — module layout, sync model, platform abstraction layer, ADRs
  3. implementation-guide.md — step-by-step build walkthrough
  4. hardening-checklist.md — production + Review across platforms
  5. interview-talking-points.md — pitch and Q&A
  6. platform-decision-record.md — every #if os(...) decision, dated, with rationale

What “done” looks like

  • App live on the App Store on both iOS and macOS
  • Same boards sync across all three form factors within ~5 s
  • Mac app passes a native-app smell test — feels like a Mac app, not an iPad port
  • Widget on iOS + macOS (the menu bar item is the macOS widget)
  • AppIntents work in Shortcuts on all three platforms
  • platform-decision-record.md documents every cross-platform call

Next: Requirements