Keeping A Healthy Tech Diet
Seasoned application developers know the importance of staying current with the latest languages and frameworks. Just as important is the need to experience operating systems that their customers use. This goes not only for desktop operating systems, but mobile OSes as well.
Having spent the last six months using iOS as my primary mobile platform, I decided to live in the Android world for a spell. Before going further, let me clarify that I won't abandon either platform entirely, since each has features that simply don't exist on the other. Also, Android tablets still have a long way to go before they match the elegance and simplicity of the iPad, though recent entries by Android hardware partners Asus and Samsung look promising. So although I've made the switch to an Android device as my primary mobile phone, the iPad will remain my tablet of choice for now. Besides, until an Android equivalent of Textastic is available, I won't be writing that much code on an Android tablet anytime soon.
First, here's what I miss. Google has yet to address the Siri issue with any compelling alternative. Yes, I know Android has voice recognition and text to speech functionality, but it's kludgy and sounds terrible compared to Siri's more natural sounding responses. If Google wanted to get a leg up on Apple, it would make available a downloadable replacement for Pico (the default TTS engine used since Android 1.6) and a drop-dead simple API that allowed developers to hook into the human to computer cloud conversation. Hopefully, we'll see something along those lines in the Android 4.1 release. In the meantime, the majority of Android users are 2.3 'Gingerbread'-based devices, and the likelihood of this version receiving an over-the-air update containing such functionality just ain't gonna happen.
Another shortcoming is the lack of a built-in Cisco IPsec stack on the phone. Sure, you can jailbreak and root your phone and install a third-party app to get this working, but this functional omission in even the new 4.0 release is confounding. I'm sure it's a combination of patents, licensing costs, and Google busy with other more pressing Android feature priorities, but until such functionality is baked into the OS, enterprise customers will turn to iOS for no-hassle Cisco VPN needs.
One more thing. Android phone headsets have a long way to go to match the basic functionality of the iPhone's. Given the rich media playback aspects of these devices, a standard mandatory hardware specification should be made for the headphone jack so that an Android headset from one manufacturer works on any other. I listen to a lot of podcasts and music on the go, and it's painful not to have the ability to control playback the way I can with the standard 3 button controls for iOS-certified media headsets.
With the negatives out of the way, there are a couple of developer-friendly attributes on Android that absolutely trounce iOS. Most obvious is the free flow of information and source code within the Android community. The ability to truly multitask is another extremely useful feature for triggering a variety of event-based actions. Speaking of which, I've become a huge fan of Tasker. For those familiar with Apple's Automator workflow automation application, Tasker is essentially Automator for Android. Compared to all the code I would have to write to perform what takes just a few button clicks to set up in Tasker, the time I've saved and will keep saving thanks to Tasker is substantial.
And while I still find the Java syntax too verbose for Android development, a number of interesting open source efforts are making their way virally across the interwebs that hook directly into the Android Native Development Kit (NDK), obviating the need to write any Java without sacrificing Android's Dalvik VM performance.
Lastly, what a difference half a year makes in the tech world! The Android Market has matured nicely in that short time, though it's still not quite as polished as Apple's App Store. Beyond that, migrating my mail, schedules, documents, and preferred applications from my comfort zones in iOS took a long weekend of configuration tweaking to get it just right.
So now that Android is once again my daily go-to OS, I like the direction that it and the Android community at large is heading. UIs are looking better, APIs are looking better, and hardware (especially on the tablet side) is looking better. It's a nice change of scenery. And who knows what I'll be switching to in another six months to keep my tech diet from getting stale. iOS 6? Windows Phone? What about you?