they do, the default file picker for iOS has a 'pick file' native command that then pops a system picker and then returns just the selected file but many companies would rather have full access to enable their own experience. In messaging apps, it is seeing the photos in a small view. Instagram has a full screen browser to enable their own chosen UX.
Edit: I just saw a really neat alternative view in iOS 14 whereas the 'allow access to photos' modal gives the option to pick and choose what photos are 'shown' by the OS.
Wow! It's so rare that I might have never seen it, or completely forgot about it. However, now that you mention it, I think I remember it from my early days on iOS.
Actually the problem is most of apps don't give you the choice between [slick UX + loose control over your data] or [ok UX + perfect control of your data].
If I download Instagram and refuse to access my local storage, I guess I won't be able to share a picture from my phone, right?
> If I download Instagram and refuse to access my local storage, I guess I won't be able to share a picture from my phone, right?
Not from within the app, but if you go into the Photos app and share a photo from there, you can choose to share to Instagram, and Instagram will get only that one photo.
Third-party apps could provide a custom UX to sensitive data by providing a separate executable that the device's OS then runs in a sandboxed process with read-only access to your sensitive data and without the means of communicating anything with the source app's process. When the user has completed whatever task the sandbox was needed for (e.g. finding a photo from your entire camera-roll or picking contacts) the sandboxed third-party code indicates the selection to the host OS who then does a quick "confirm you want to use these 3 photos?" prompt and then releases only the selected data.
...basically something like WinRT's broker-processes on steroids - or another use case for Apple's "App Extensions" feature but allowing for complete control of the UX more akin to a Photoshop Plugin than being limited to a small number of prescribed use-cases.
Edit: I just saw a really neat alternative view in iOS 14 whereas the 'allow access to photos' modal gives the option to pick and choose what photos are 'shown' by the OS.