Work / Consumer Privacy
Cross-process state sync for multi-extension iOS app
- Platform
- iOS
Cross-process state sync for multi-extension iOS app
Consumer Privacy
Industry: Consumer Privacy
Platform: iOS
Stack: Swift · SwiftUI · SafariServices · CallKit · IdentityLookup · RevenueCat
Description: Single iOS product across four sandboxed system extensions with unified cross-process state.
The engineering surface was sandbox-boundary state synchronization: a Safari content blocker, a call-directory provider, an SMS-filter extension, and a Safari web extension each run as isolated OS processes with no direct memory sharing. App Group containers became the communication bus; phone-number normalization had to be byte-identical across every reader; the call-directory extension demanded strictly ascending sorted input on every reload or it would silently refuse to load. Subscription-status changes had to propagate across process boundaries with explicit reload orchestration and graceful handling of system-level extension disablement.
We owned the architecture of all five targets — main app, four extensions, and the shared-defaults synchronization layer. The client owned the threat-intelligence data source and the paywall content.
Engagement: ~6-month build · 2-engineer team · 2024.
Engineering signal: sub-second cross-process state propagation between subscription change and content-blocker behavior.