Usage & Intention of the FamilyActivityPicker, DeviceActivityEvent and ShieldAction

Several questions to some intentions behind the frameworks and specific issues with it's usage, underlined with filed Feedback Assistant reports. (see below)

Understanding of the Application class

Such class can be either instantiated with the token (which only the OS provides with the FamilyActivityPicker) or through a bundleIdentifier.

  1. When is it intended to use the bundleIdentifier initializer?
  2. Currently it is not possible to set a threshold limit on an application created via bundleIdentifier because the DeviceActivityEvent only accepts a Set<ApplicationToken> which a developer can not instantiate.

Family Picker

  1. Is it intended to use this picker only on the child's device or can the parent see which apps are installed on the child's device? (FB9375607 & FB9375638)

  2. If so, how do you imagine when a new app get's installed, does the guardian have to regularly check if a new app is installed and if so update it's settings on the child device?

  3. How can an app obtain the app icon of such an application or category? (FB9375449)

ShieldConfiguration & Action

When a schedule's callback happens (FB9375294) and an application is shielded we receive the localizedDisplayName of such application to show it in the shield UI.

In the WWDC session it was said that you could have an action that let's you do a network request to e.g. ask the guardian to lift the restriction which is located in a different extension.

  1. Will the localizedDisplayName be available to be included in the request so that the guardian knows which app they lift the restriction on?

Filed Feedback Assistant Tickets:

  • Start monitoring returns Unauthorized when the device is authorized - FB9375294
  • Provide an app icon for an application instance - FB9375449
  • FamilyActivityPicker does not list apps on authorized child device - FB9375607
  • Show installed apps from child on guardians phone - FB9375638

I'm facing the same problems. I eagerly await the answer.

When is it intended to use the bundleIdentifier initializer?

You can use an Application initialized with a bundle identifier to block, but not to shield, an application.

Can the parent see which apps are installed on the child's device?

Yes. Try erasing and installing, not updating, your test devices to the latest beta.

Will the localizedDisplayName be available to [a shield action extension]?

The localizedDisplayName is available only to shield configuration extensions.

Please keep reporting problems using Feedback Assistant.

The picker now "works" yet the ManagedSettings framework has no effect no matter which setting I set. Feedback Report: FB9415610 includes step-by-step guide and console logs.

Filed reports for beta4:

Bugs

  • FB9415610 : ManagedSettings set within the extension has no effect (it does actually when set via the main app)
  • FB9421632 : The picker does not include "All apps & categories" anymore

Needed improvements before iOS 15 launch

  • FB9415671 : Ability to display the selected applications in a privacy-respective way (e.g. list element provided by Apple, not screenshotable)

Future Suggestions

  • FB9415683 : Picker for Android / Web to enable cross-platform usage.

Maybe the famous (for me) @eskimo can refer the relevant engineers to those :)

Added an additional suggestion:

  • FB9422219 : Let categories be initialized via an identifier (as it does not break any privacy concern, like with applications)
  • FB9451451 : Restrict the supervised child from changing permissions of the app

Filed reports after beta 6:

  • FB9527958: DeviceActivityShieldConfiguration isn't called when application is shielded

Other reported feedback still exists, closed "all apps & categories are missing" due to new opportunity to use CategoryPolicy.all

Usage &amp; Intention of the FamilyActivityPicker, DeviceActivityEvent and ShieldAction
 
 
Q