Work / Consumer Privacy

Cross-process state sync for multi-extension iOS app

Platform
iOS
SwiftSwiftUISafariServicesCallKitIdentityLookupRevenueCat

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.

Talk to us

Working on something similar in consumer privacy?

Free first conversation. Written discovery report either way.