Not saying that Apple has anything better, but I really don’t feel like the problem is adequately solved on Android either.
The easiest thing in my mind would be to use USB mass storage, with the storage presented to the connected computer being virtualized with a layer reconciling changes with actual storage on the fly (which the current MTP implementation already does anyway), solving the problem that USB mass storage traditionally has arising from two systems mounting the same chunk of disk at once.
That would work everywhere and remove the need for a bizarre protocol borrowed from Windows XP.
The easiest thing in my mind would be to use USB mass storage, with the storage presented to the connected computer being virtualized with a layer reconciling changes with actual storage on the fly (which the current MTP implementation already does anyway), solving the problem that USB mass storage traditionally has arising from two systems mounting the same chunk of disk at once.
That would work everywhere and remove the need for a bizarre protocol borrowed from Windows XP.