Limited photos library can force strange flows for the users

Let's take an example of an app that has in its nature photo organization has an important component of its functionality. Let's also imagine that photo meta-information is crucial for the app. In this situation it makes sense to request permission to access the camera roll.

PHPicker & PhotoKit Picker (if that is the correct name) have quite appealing filters that can be quite useful for the user. If the user granted access to the camera roll, life is beautiful and we can use PHPicker + PhotoKit to have PHAssets.

If the user opts by the limited access mode, we can end up with crazy flows. In this situation we have to call PhotoKit Picker to request access to photos + (meta-data) that the user wants to select.

Imagine now that in one session the user wants to do something around people. We can can call presentLimitedLibraryPicker in a place that makes sense for the user.

In a second session the user wants to do something with photos of a specific travel. We call again presentLimitedLibraryPicker to request access to the desired photos.

In fact some of the photos can be already selected. 2 from the 30 photos selected belong to the travel journey.

To know the new selection, the one that is currently in the user's mind, we have to handle photoLibraryDidChange. The problem is that 2 photos did not change.

This means that we'll have to have a second custom "picker" for the "true" selection. For the user this will be a selection of a selection...

Are we missing something or we'll be forced to do something like this?

Replies

Please file a Feedback request with your example workflow and suggestions so we can track it internally.

In this situation we have to call PhotoKit Picker to request access to photos + (meta-data) that the user wants to select. 

It depends on if your app can still work when PhotoKit access is denied by a user.
  • If your app can't work at all without any PhotoKit access, you can use a custom picker and present the Limited Photos Library picker when you want users to grant you access to additional assets. A possible solution is to add an "Add" button to your custom picker that presents the Limited Photos Library picker.

  • If your app can still work without any PhotoKit access, you can use PHPicker. For selected assets outside Limited Photos Library, you can have some UI to tell your users that your app is operating under "reduced functionality mode" for those assets.

Sure we will file a feedback request.

Not going deeper into the details of the app, we can say that the user will have huge benefits from giving access to the camera roll. The craziness for the user comes with limited access mode.
This thing of having the user granting permission to the photos will be really hard to be understood. The photoKit picker looks like a picker and it is quite similar to the PHPicker that will be usually seen by the users. The only time users will understand it is the first time when they see "Select photos" and tap it. After seeing "Select more photos"...
You guys know well that users don't read that much introductory messages. For most of the users they will see it as a path to select photos and, in reality, they are granting permission to photos.

I've been trying to explain this to my wife that is an iOS user for years and she did not totally understand it yet.

Guys, I perfectly understand your concern with the access to the camera roll. The way this is designed looks like something done by engineers only. Don't take me wrong, but this does not look a design made by Apple. This is like giving a command line tool for an iOS user...

At least you could let apps opt-out this limited access mode and make it harder on the review process of the app.
FB8050290