I upgraded my iPhone 4 to iOS5 yesterday. The look and feel is better than the last build – and as Aamir khan says, you can only improve perfection so much. A review of the iOS5 features is coming up in a few days – but the topic of this post is something Apple did that pissed me off.
Due to my (vested) interest in messaging, the first feature I wanted to try out was iMessage. So I turned to Settings – and turned the iMessage settings on. To my surprise, I got an alert from Aircel (my provider) that an SMS has been sent to an US number and my prepaid balance has been debited. Apple had basically sent a background SMS from my phone to an US number to verify my phone number without informing me.
Now this pissed me off.
The reason was that they sent it in the background.
Now there are two common ways in which phone numbers are verified in different OS –
a) Take the number from the user in a signup form. Send an SMS with a unique code and ask the user to input it in the next screen. This is how most other apps validate on the iPhone platform
b) Ask the user to send an SMS with a particular code to a predefined number (depending upon his country).
c) Send an SMS in the background to the same number from the same phone. Intercept it and prove validity. This is allowed by Android and some other OS but not iOS
So the precise fact that pissed me off was that iOS sends an SMS in the background for validating my phone number for its own app. But it doesn’t extend the capability of sending an SMS in the background to other apps and neither the capability of intercepting them. This is a huge disadvantage for any app that needs to validate your number. Similarly iOS app store has been known to reject many apps that send any kind of SMS from the users’ phones – even if they take consent for it. So why dont the same rules apply to Apple as well?
This is in the same spirit as pointed out by the Google employee (not for much longer I guess) –
The Golden Rule of Platforms, “Eat Your Own Dogfood”, can be rephrased as “Start with a Platform, and Then Use it for Everything.” You can’t just bolt it on later. Certainly not easily at any rate — ask anyone who worked on platformizing MS Office. Or anyone who worked on platformizing Amazon. If you delay it, it’ll be ten times as much work as just doing it correctly up front. You can’t cheat. You can’t have secret back doors for internal apps to get special priority access, not for ANY reason
I think this is cheating. Cheating the customer and other app developers by not providing them the same playing field. Not cool Apple – totally not cool.