NoteSync — Hardening Checklist
1. Functional correctness
- Notes sync between two iCloud devices on the same account within 30 s
- Sharing a note to a different iCloud account works end-to-end
- Read-only sharing actually prevents writes (CloudKit enforces; verify)
- Three-way merge correctly combines non-overlapping edits
- Conflict UI appears for overlapping edits and resolves without data loss
- AppIntents all work in Shortcuts and Siri
- Spotlight returns hits within 1 s after note save
2. Security & privacy
- All user data lives in user’s iCloud — no third-party servers
- Privacy Nutrition Label: User Content (Linked, Not used for tracking)
-
PrivacyInfo.xcprivacydeclares User Defaults + File Timestamp APIs with reasons - No analytics, no crash reporters that ship PII
- Share URLs are not logged or persisted anywhere outside CloudKit
- No force-unwraps
-
All
try?are deliberate (verify each)
3. CloudKit hygiene
- Production schema deployed
-
Indexes created on
Note.modifiedAtandNote.folderIDfor query performance - Subscriptions cleaned up on sign-out
- Server change tokens persisted per zone, not globally
- Recovery from “ChangeTokenExpired” implemented (full re-sync of zone)
- Quota-exceeded surfaced with actionable UI
4. Performance
- Cold launch < 1.5 s on both platforms
- Sync triggered by silent push completes in < 5 s for typical deltas
- Spotlight reindex on save < 500 ms
- No retain cycles
- Memory peak during initial sync of 1000 notes < 100 MB
5. Accessibility
- VoiceOver navigates note list and detail
- Dynamic Type up to accessibility5 works
- Color contrast meets WCAG AA for all text
- Keyboard navigation full on macOS
6. Localization
-
All UI strings via
String(localized:) -
Date formatting via
Date.FormatStyle(locale-aware) - Sharing UI labels respect locale
- AppIntent parameter prompts localized
7. App Store Review
- iOS: demo iCloud account in Review notes if testing sharing
- macOS: notarization passes
- Privacy policy URL live
- Sign in with Apple flow tested by reviewer can complete in sandbox
8. Documentation
- README with architecture diagram + screenshots
- CloudKit zone topology documented
- Conflict resolution algorithm documented with examples
- AppIntents listed with example Shortcuts use cases
- Interview talking points rehearsed