Mike Riley

Dr. Dobb's Bloggers

Keeping A Healthy Tech Diet

February 02, 2012

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?





Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

DrDobbs encourages readers to engage in spirited, healthy debate, including taking us to task. However, DrDobbs moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing/SPAM. DrDobbs further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Best of the Web

What the New iPad and iOS 5.1 Mean for Developers

The new display is gorgeous. But local storage for HMTL5 is currently broken on the new iPad and performance of some apps is slower. Here's a deep dive into the issues, including benchmarks and analysis.

Quick Read

Triple Buffering as A Concurrency Mechanism

Triple Buffering is a way of passing data between a producer and a consumer running at different rates. It ensures that the consumer sees only complete data with minimal lag.

Quick Read

Embedding GDB Breakpoints in C Source Code

Have you ever wanted to embed GDB breakpoints in C source code? Something like this:
printf("Hello,\n");
EMBED_BREAKPOINT;
printf("world!\n");

Quick Read

Writing Kernel Exploits

Why attack the kernel? Because it has a huge attack surface with potential for very interesting bugs. This presentation (pdf) takes a code-level dive into recently reported Linux-kernel exploits.

Quick Read


More "Best of the Web" >>



Video

Enabling People and Organizations to Harness the Transformative Power of Technology