2011-03-29

Android FTW

Finally, I got an Android phone. It's a Samsung Galaxy S SCL. Got it at the end of Friday, had the whole weekend to play.




Small, posh box. Quality accessories. A charger the size of a matchbox, practically just the plug. Earbuds with rubbery thick wires that do not tangle up. The device is slick, the UI is fast and smooth.

The UI is all translated, with a couple of amusing bugs. One of them is that the Bluetooth menu is, in fact, Italian, not Lithuanian (it, lt, big deal!) "Impostazioni Bluetooth. Ricerca dispositivi." Then there are some usual cases where the translator did not quite get what they're translating. "Build number" in the system information is translated as "Sukurti numerį" (literally "create a number").

The Android Market is amazing. I found everything I needed: an ssh client, a PasswordSafe program, a fb2/html/txt book reader, an OpenStreetMap based vector map program with address search and routing, an app for WindGuru and Windfinder, a virtual drum kit like my bro had on iPhone4, etc. Usually there are more that one choice for each particular type of app. But I'm going to write my own fuel log app anyway, as the one that does everything I want and a bit more is castrated in the free version.

Turns out, with Android it's even harder to hide your data from Google. Just enter your Google account creds once, say in the Google Talk app, and look, your address book is sync'ed with your Google account too! It can all be turned off, of course, but still. That's my current tinfoil hat conspiracy theory as to why Google invested in Android -- to gob up everyone's address books!

I tried avoiding feeding all my data to Google. I played with SyncEvolution for two hours trying to fish out the data from my Symbian phone. In the end it worked, I had the phonebook on the laptop as a directory with 350 vcards. Now it's just a matter of adding the new device, and pyushing it up there, right? Bzzzt, what do you mean Android not supported!? Turns out it's true. Android has no SyncML support built in. There are apps that might or might not work over the network, but Bluetooth, here and now, is out of the question.

I went to the Android Market and looked for a phonebook import app. Found one that did exactly what I needed -- filled the address book from a directory with vCards. A couple of minutes, and here we have it! But wait, all non-ascii characters got mangled, double-UTF-8-encoded. Good job the app is GPL, bzr repo available at the author's web site. Another half-hour, and I have the SDK all set up with Eclipse integration. A quick look at the source, a couple of recompiles and reruns, one offending line commented out, and the phonebook is all imported. Only later I found that the standard phone book app has the vCard import/export too, perhaps even without bugs! The patch for the import app is still to be sent.

Anyway, now I'm diving into Android dev tutorials and reading Bloch's Effective Java.