Sunday, February 15, 2009

Google Android: Perfect For Some People

I've been using Google Android phone (Developer Phone 1, not the white stock model sold in Czech shops) for more than a month and I am now - after many, many years of desperation - almost happy with my phone.

I wouldn't dare to write that "Android is the best phone in existence" because that's extremely subjective statement. In fact, that sentence is completely wrong because Android is not a phone but G1 phone's operating system by Google which will be soon (and I mean in a matter of weeks) implemented on many other commercially available devices devices (not only phones). The interesting fact is that the whole operating system in open-source and you can officially download the full source code, modify it and build it on your bizarre device (and then manufacture and sell that device without paying Google anyting).

(Please note that "full Android source code" doesn't necessarily mean "full source code of everything that's installed on G1 phone when you buy it".)

The OS is Linux-based and standard applications are stored in bytecode interpreted by Dalvik virtual machine. The bytecode is usually generated by running almost-standard Java sources through Google's compiler and re-compiler (those are also open-source and freely available, including the emulator). My personal problem is that I absolutely hate Java and refuse to do anything meaningful in it. That's why I won't be developing in Adroid any time soon, at least unless someone releases Dalvik compilers for different languages. Of course, you can even recompile the kernel and create Android applications in any damn language you want, but then it's not easy to distribute these applications to normal (non-hax0r) users across different Android platforms.

Me = haXx0r!

However, the ability to hack my phone into oblivion isn't the main reason why I like Android (at least for now). For now, I am happy because Android seamlessly (almost) brings my Google Accound into the palm of my hand. GMail, Contacts, Calendar, everything is transparently synced. You don't have to connect any cables, you don't have to install any software on your PC - you don't even need a PC although it's useful. It's a bliss to organize your contacts in GMail and see those changes automagically propagating into the phone in a matter of minutes. (Android also supports Google Apps For Domains accounts.)

(BTW, the stock G1 phone cannot be rooted by simply issuing the "su" command as on the Developer Phone but it's not very hard to do it.)

And this is the "subjective" part: If you - for example - use Outlook or Lotus Notes, you could say that there is no simple way to sync your data with Android, I think. Of course, if you never touched Outlook in your life (like me) and have hundreds of contacts neatly organized in GMail and all your schedules in Google Calendar, the situation is completely different.

Also, the first Android Phone (G1) is positively ugly, the software on the early models was almost beta-quality and you are lucky if you get 24 hours of life from the phone's battery (because the phone is online almost 100% of the uptime, unless you specifically tell it to be offline). Again, this doesn't matter too much for me. I don't care about the elegance factor, there are updates available (plus many excellent applications for free) and when the more advanced model will be released, I will just sign-in to my account and most of my data automatically appears on it...

As for the applications: The framework is designed in such a way that any application can do almost anything (including changing the dialing method, for example) and cooperate with other applications (from different developers) - without any ugly hacks and exploiting of undocumented features. When you install applications, you get warnings about what permissions this application needs. If you download something called "Funny ringtones" from unknown developer and it warns you that "This application needs online access / access to your private data / access to roaming" and yet you click on "Install", it's then your fault when you find 30 seconds later that your phone is 0wn3d. I much prefer this free distribution model to tightly controlled iPhone application market.

Another interesting thing is that there's no such thing as "application launching" in Android. All applications are basically running all the time (of course most of them are "waiting" most of the time) and you just switch between them. The upside is that you don't run out of memory if you work with several applications at the same time (unless they generate lots of runtime data). The downside is that you cannot "install" applications on the SD card and run them from there.

Why I wrote all of this? To tell you that Android phone is fundamentally different and fresh. It reminds me of the original PalmOS (v4) before it died horrible death.