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 aplatform-decision-record.mdfile. 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
- requirements.md — feature list, user stories, per-platform expectations
- architecture.md — module layout, sync model, platform abstraction layer, ADRs
- implementation-guide.md — step-by-step build walkthrough
- hardening-checklist.md — production + Review across platforms
- interview-talking-points.md — pitch and Q&A
- 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.mddocuments every cross-platform call
Next: Requirements