This is of course to be expected. iPhone mania happens every year, like a force of nature. Like the seasonal rushing bloom of the sakura in Japan, or as in North America where the expectation is that the trees will change color during the last weeks of October, ushering in the fall and the inevitable winter. You can't stop it, it simply is.
iPhone happens. Deal with it.
Still, despite the real enthusiasm -- all 4 million orders and counting for the newest version, the 4S -- this is not the platform I choose to use for my own particular smartphone requirements.
I use an Android device.
My ZDNet Mobile News colleague James Kendrick feels that after playing around with his iPhone 4S after a few days, Android Gingerbread 2.3.x just "Feels Wrong."
I'm not sure how to quantify exactly what he means by "wrong", but I'll take my best shot at it.
James' biggest complaint is that Android does not feel as "fluid" to him as iOS does, particularly when using the web browser and that there are inconsistencies in the user interface.
I'll give him that. Compared to Safari in iOS 5, neither Gingerbread 2.3.5 nor Honeycomb 3.2's web browser is as "slick". And I agree that configuration screens and apps that come from Google and various developers don't always integrate well, especially once the handset OEMs get a hold of the source and pollute the "vanilla" Android base code with their "value add".
I've complained about these issues numerous times myself. But let's move forward.
As a "finished product" I agree with James that iOS is more "done" than Android. Like all Google products and services, their mobile OS is constantly in a state of flux and enhancement. This is a reflection of the way Google does things as it is a software engineering culture.
This is not a dig at Google, it simplyis. As a company, Google is not afraid to release things invaried states of completion. They are the Yin to Apple's Yang in virtually every aspect when it comes to how they approach software engineering and product releases.
While some people prefer the consistency and stability with the iOS software releases on an annual or biannual basis, some of us would rather get our enhancements constantly and incrementally rather than through big OS updates once or twice a year.
Google is always presenting us Android users with nice surprises and improvements, particularly with their core application updates.
Arguably, some things may be of a more experimental nature like Google Goggles or Google Maps Navigation, and some are more "Done" like the GMail app.
However, with Android, unlike iOS, which has a highly refined set of core apps that come with the OS that cannot be modified or reconfigured, you can easily switch out things that you don't like and replace them with completely different or even slightly-altered third party apps. Android is a tweaker's paradise.
Heck, you can switch out Google's Android Market for Amazon's Appstore. You can add adult app stores like Mikandi. You can also "side load" vertical market applications for special enterprise use simply by turning on a toggle switch in the configuration settings.
With iOS, this is not so easy to do. Want to install a custom app? You need to become a software developer and download the enterprise deployment kit. Want to switch out or add a significant piece of functionality that Apple won't approve of on its App Store? Forget about it. Have fun jailbreaking and using Cydia, and good luck when you have to install a major OS update.
All this has been bandied about and documented ad nauseum. Apple is a closed ecosystem with rules that must be followed (which change constantly and are applied inconsistently) in order to be a good citizen of App Store land, or one faces app rejection or account expulsion.
This not only hurts the developers that spend a great deal of time and energy building apps, but it also hurts the end users that could have benefited from using them.
Conversely, Android is rampant with deregulation to the point that even malware can enter the system if left unchecked. And because of the diversity between chipsets and hardware and 3rd-party OEM software overlays and additional APIs that make up Android devices, applications do not behave consistently between different devices.
Each platform has extremes that are undesirable and both very desirable at the same time. It all depends on what the needs of the target user is.
Fundamentally, what it boils down to is the difference between one platform of homogeneity and another of heterogeneity.
Without these two things, we would not have innovation in our industry. Innovation and competition is good.
With Android, I have the option of completely replacing my system ROM with one of 3rd-party origin, particularly when or if my OEM decides it's not worth their time to continue to support my device.
Case in point, I brought my last device, the original 2009 Motorola Droid, from its final 2.2 "Froyo" update to the latest 2.3.5 Gingerbread courtesy of the CyanogenMOD community.
This is an activity fully endorsed and encouraged by Google due to the OS's Open Source nature -- not once have I seen a rooted, custom-ROMed device denied access to the Android Market.
Conversely, while a large "Jailbreaking" community exists for iOS for customizing and adding functionality in an underground manner, custom iOS builds just do not exist openly -- they would be considered to be pirated software, like Hackintoshes.
Cupertino has pursued legal action against those who engage in Jailbreaking-type activities, and Apple is constantly finding ways to thwart the efforts of jailbreakers and the jailbroken devices. I just don't want that to be part of my lifestyle.
I have other things to get done, like actual work.
If I need a custom app written with special libraries, I want to get it installed without some nanny in Silicon Valley telling me what I can and cannot do with my phone according to some stupid set of rules I don't necessarily agree with.
And development versatility? With Android, a developer can write in any language or platform that they choose, be it Dalvik's special Java implementation, Adobe AIR/Flash or write totally custom C/C++ libraries and functions in the NDK if the APIs for what they need do not already exit in the Android SDK.
It doesn't matter to Google -- they give developers the power to do whatever they want because it is in Android's design to be exploited and modified.
At the end of the day, this is why it is likely that Apple will not be able to easily engage the enterprise and special vertical markets to the extent that Android will, because the iOS platform is designed to be heavily consumerized and inflexible in order to prevent tampering.
I don't even want to get into issues of mobile hypervisors and other enterprise enhancements and technologies that will further prove the versatility and power of Android in the coming year which you will never see on iOS, unless Tim Cook makes radical changes to Apple's business model and accommodates partners the same way Android does.
The Inflexibility that makes iOS an excellent consumer platform is also its greatest weakness. Flexibility is Android's greatest strength, at the cost of some refinement.
So sure, I'll admit that Android has its flaws. But as a technologist and a power user, I'll gladly put up with a few quirks and rough edges for the flexibility and power that I have to make my phone do what I need it to do for me.
Are you willing to put up with the flaws and imperfections in Android in order to have the power and flexibility that Google's mobile OS offers? Talk Back and Let Me Know.