The real issue is not smartphones, iOS and Android or apps. The issue is that independent technical standards are intentionally ignored. There is no reason that I should not be able to set my plan through curl and hand-draw the QR code with pen and paper. Sure, I would not want to actually do it like that, that's not the point. The point is: if I can use curl and pen & paper, then I can use whatever else I want. If I want to use a smartphone I should be able to code my own app according to a well-documented public API. Those APIs already do exist, otherwise the official app would not work, so it's no extra work for the service provider.
We need a law that mandates open specifications for access to all publicly available services.