Capstone 4 — NoteSync

Tagline: A collaborative notes app where you can share individual notes or entire folders with other iCloud users, with real-time sync via CloudKit shared zones, AppIntents for shortcut automation, and partial iOS+macOS support.

Tech stack: Sign in with Apple · CloudKit shared zones · CKShare · AppIntents · iOS + macOS (partial universal)

Time budget: ~2 weeks

What this capstone proves:

  • You can build a multi-user CloudKit experience — not just private DB, but CKShared zones with collaborator permissions
  • You understand the CKShare invitation flow (UICloudSharingController on iOS, the macOS equivalent)
  • You can resolve edit conflicts in a shared store with CKRecord server change tokens
  • You can expose AppIntents that work in Shortcuts, Siri, and Spotlight on both iOS and macOS
  • You can ship a partial universal macOS catalyst-or-native build alongside iOS, picking the right tradeoffs

The 30-second pitch

“NoteSync is a notes app that lets you share individual notes or whole folders with other iCloud users. Sharing uses CloudKit’s CKShare model — you generate a share URL, the recipient accepts, and from that point both clients write to the shared zone with real-time deltas. The interesting work was the conflict resolution layer; when two users edit the same note simultaneously, CloudKit reports a server-change-token mismatch and you get back the divergent versions. I built a three-way merge based on the common ancestor that preserves both edits when possible and otherwise prefers the more recent timestamp with a ‘see both versions’ option. The app ships on iOS and macOS — same Swift package core, separate SwiftUI shells.”

Why this capstone

CloudKit private DB is straightforward. CloudKit shared DB with CKShare is the part nobody in the Apple ecosystem fully understands — and the part that companies that depend on multi-user iCloud sync (Bear, GoodNotes, Things) lose engineers over. Building this end-to-end is a senior-level signal. Adding iOS+macOS shows you can think about cross-platform code organization.

Files

  1. requirements.md — feature list, user stories, sharing flow
  2. architecture.md — CloudKit zone topology, conflict resolution, ADRs
  3. implementation-guide.md — step-by-step build walkthrough
  4. hardening-checklist.md — production + security review
  5. interview-talking-points.md — pitch and Q&A

What “done” looks like

  • iOS + macOS apps, both on TestFlight
  • A folder shared between two iCloud accounts, syncing within ~5 s
  • Conflict resolution demonstrated: simultaneous edit on both devices → merged output
  • AppIntents for “Create note”, “Append to note”, “Find notes containing” — usable in Shortcuts and Siri
  • Hardening checklist ticked

Next: Requirements