Honest question since I have no idea of coding/programming:
Why can Apps cause a multitude of issues on your phone, or to be more specific on your iPhone(/iPad)? I thought Apple's whole sandboxing approach and App Store review process is there to prevent exactly that? Shouldn't just the Apps themselves behave bad if they have bad code instead of affecting other parts of the phone?
The technical (Sandbox) and business (App Store Review) limitations should mitigate these things but, in practice, some slip the net, or perhaps even a blind eye is turned if the developer is important enough to the platform.
Two examples: -
- Uber: Uber kept using background data after they should have. They didn't defeat a technical limitation to do so, it's something that is technically possible. What they did was put code in the app that detected whether the current location was where they knew Apple tested apps for the store and didn't behave badly in that circumstance and only that circumstance. Uber cheated to track you longer than they said they did, robbing you of your privacy and battery. When it was discovered Tim invited the CEO of Uber for a "little chat" that I would have paid to be a fly on the wall for.
- Facebook: Famously, Facebook played silence over the background audio API in order to defeat the process reaper and always stay running. In this way they could periodically do things like check location with high accuracy. This one, unless they put in similar measures to Uber, I find much more surprising that it wasn't caught at app review. Some people think Facebook may have just been too big to be called on their behavior but I'm less conspiracy minded and suspect it was just an app review failure. I'm sure measures were put in place since if that is the case.