To be honest, this post was on my disk for nearly two months now. I have changed it often, but still I think it’s not complete. Anyhow, I doubt that will get any better so I’m publishing it.
As my current phone, a Samsung i780, is rather old I started to search for a replacement. I looked at the currently available phones both from a customer perspective as well as from developer view -mobile app development is still a very hot topic.
After all, it came down to the “big three”: Apple iPhone, Google Android and BlackBerry. As an extra, I also checked Windows Phone 7.
I didn’t know BlackBerry quite well but fortunately I have one here as a current client insisted that I use it while working on the project. This was the easiest decision of all: Looking at all the features it’s clear to me that BlackBerry is developed for big enterprises, not the normal customer. For app development, each paid application you submit will cost you 200$ (with 10 updates free). Once you have submitted 10 updates, you need to pay 200$ again. No, not the phone I was looking for.
For the Apple iPhone I think you can name it “Best phone with best vendor lock-in”. Without any doubt, the iPhone 4 has the best display money can buy, fits exactly in your hand, runs quite a long time on batteries and iOS is definitely mature. On top, you get the best filled app store around. So this should be a no-brainer, right? No.
Because if you move a little ahead, you end up being limited to what Steve Jobs thinks is good for you. This starts when you want to buy it: You can only get with a mobile phone contract from one vendor. Even if you sign this contract, you can’t simply exchange the SIM card as it has a SIM lock. And this is just the start: Replaceable batteries? No. SD card slot? No. Apps outside the app store? No. Developing apps with something else than Apples C/C++/Objective-C? No. Using cross compilers? No. Tethering out of the box? No. And so on.
There is actually good reason for Apple to behave like this: Profit (of course) and control of the platform. Although the iPhone Developer program is rather cheap with 99$, it isn’t what I was looking for. No Steve, I don’t obey. Please keep your
Moving over to Windows Phone 7: When the read the first report about Microsoft developing a new “iPhone rival” I have to admit I was really think that this will be my new phone. I really thought they will simply take the pieces Apple did right, remove all the stupid parts (all those “NO” entries above) and add some extra features.
After all, Microsoft should has all needed technologies at hand: Multi Touch (Surface), a great runtime with a sandbox (.NET Framework), a very good graphics engine (DirectX), a nice UI (XAML/Silverlight) and by the way: they are producing operating systems as well.
Well, these were my first thoughts but as now more and more details emerge, I’ve learned that Microsoft has completely copied the Apple way including all the great fails.
To start with that you can’t install apps outside the marketplace, that you have no access to an SD card (only for “extending the internal memory”, not for you to simply exchange data) and so on. Although there are some hardware partners, they are not allowed to extend the phone (e.g. HTC Sense or Samsung TouchWiz). If all hardware is basically the same, why should any vendor build a phone then? Remember, a lot of people buy an HTC device because of Sense.
No doubt that Microsoft has currently the most advanced combination of a good runtime (.NET/Silverlight etc.) with a very good development tool (Visual Studio) but with all these Apple fails build in? Nope.
Enter Google Android: An open-source smartphone OS released under an Apache license. As the licensing cost for the OS are nearly zero (OS is free, but some Google apps will cost the manufacturer something) it’s now wonder they are dozens of phones available. There is no form factor that isn’t available.
The app store is the second biggest in the world (70k vs. Apple’s 200k) but you are free to install applications outside the store. Heck, you can even create native applications and call them from your “normal” apps. Replaceable batteries, using any carrier, OS “enhancements”, tethering, cross compilers or SD card access? Yes, you can.
So this is happy land, right? Nope. Android isn’t mature so far. Everywhere you will come across little quirks and major bugs.
For example, there is no build-in setting to simple turn off mobile data in the night or after a given period of inactivity (There’s an app for that). The build-in calendar sometimes goes havoc if you change the synchronized accounts (need a “Clear Cache”) and can’t handle time zones. The music player can’t read MP3 tags correctly nor handle genres at all. Choosing a date using the build-in controls does not show you a calendar. A lot of apps are poorly written and will drain your battery in no time. And so on.
But from my point of view, the advantages of Android out weight the failures: I ordered a Samsung Galaxy S (I9000).
Final note: Why I always want the “Install apps outside the store” feature?
Because any review process is broken by design. For an example, read this.
And if you still believe that “Reviewing” an app is a good way to prevent “bad” apps, see this. When this was not noticed during the
censorship review process, what else “under the hood” functions might exist in other apps?