The problem with the apple approach is that it's fine grained and you have to restart apps for every change. I wouldn't care if nothing was allowed by default if when an app tried to do stuff it popped up the dialog at that time and asked for permissions needed to accomplish that task, but having to toggle stuff separately and restart the app each time is horrible UX.