iOS 16 Screen Time API for Parental Control Apps
Apple's iOS 16 introduced the native Screen Time API, allowing third-party developers to build robust parental control and digital wellbeing applications directly within the operating system. Previously, developers had to rely on unstable workarounds such as Mobile Device Management (MDM) profiles or local VPN tunnels to restrict device usage. This article explains how the Screen Time API functions, detailing its three core frameworks—Family Controls, Managed Settings, and Device Activity—and how they provide tamper-resistant controls while safeguarding user privacy.
The Shift from Workarounds to Native Integration
Prior to iOS 16, parental control apps frequently broke due to operating system updates or aggressive background app termination. Using VPNs or MDM configurations often led to security vulnerabilities and poor battery performance. The Screen Time API replaces these methods by embedding parental controls directly into the system layer, giving developers sanctioned, reliable tools to manage screen time, set schedules, and restrict content.
1. Family Controls Framework
The FamilyControls framework acts as the gatekeeper for
parental authorization and privacy protection.
- Authorization via Family Sharing: The framework requires authentication through an Apple Family Sharing group. A parent must grant permission using their device, preventing the child from revoking permissions or uninstalling restrictions without authorization.
- Opaque Tokens for Privacy: Apple does not expose
raw data, such as app names, bundle IDs, or visited URLs, to developers.
Instead, apps use the built-in system picker
(
FamilyActivityPicker) to let parents select apps, categories, or websites. These selections are returned to the developer as opaque tokens (ApplicationTokenandWebDomainToken). The developer's app can enforce rules using these tokens without ever knowing the specific apps or browsing history of the child.
2. Managed Settings Framework
The ManagedSettings framework provides the mechanisms to
enforce rules and apply device-level restrictions based on the tokens
selected in FamilyControls.
- Application and Category Shielding: Developers can pass the opaque tokens to the system to immediately restrict access to specific apps or entire categories (such as social networking or games). When a restricted app is opened, iOS displays a full-screen shield.
- Custom Shield Interfaces: Developers can customize
the appearance and messaging of the shield screen using the
ManagedSettingsUIframework, allowing them to provide context-specific messages (such as "Bedtime active" or "Study limit reached"). - System-Wide Restrictions: Beyond app blocking,
ManagedSettingsallows developers to lock critical system settings, prevent account modifications, restrict explicit content, and block Safari from accessing unapproved domains.
3. Device Activity Framework
The DeviceActivity framework enables monitoring and
time-based automation without requiring the developer's app to run
continuously in the background.
- Schedules and Time Windows: Developers can define specific time windows (such as school hours or bedtime). The system automatically triggers developer-defined extension points when a schedule starts or ends.
- Usage Thresholds: Developers can set cumulative
usage limits (for example, allowing two hours of total gaming per day).
Once the threshold is crossed, the system executes an event that
triggers the
ManagedSettingsframework to apply shields automatically. - On-Device Execution: All tracking calculations
occur locally on the child's device via lightweight extensions
(
DeviceActivityMonitor). Because data does not need to be transmitted off-device to determine if a limit is reached, battery consumption is minimized and privacy is preserved.
Tamper Resistance and Security
A major advantage of the Screen Time API is built-in tamper resistance. Once a parental control profile is authorized, the child cannot bypass restrictions by switching off background app refresh, force-quitting the app, or disabling networking. Because the policies are enforced directly by the iOS kernel and system daemons, restrictions remain active even when the supervising third-party app is closed.