Thursday, January 28, 2010

Droid vs. iPhone

I've been running the Verizon Droid phone for about 2 weeks now and figured I would write up a little comparison. I switched because AT&T was a nightmare to deal with on multiple occasions when it came to repair, replacement and finally stolen iPhones. Having only been with Verizon for a couple of weeks, I've not had the chance to compare customer service, so I'll be leaving that out.

Usability is the iPhone's biggest seller. On the iPhone, a simple click on an icon and your app is open. You want to change the way the application acts in some manner. Close the app, open your settings, locate the app and make your changes. Re-open your app. On the Droid, a simple click and your app is open. You want to change the functionality of the app, you tap the menu button and the better written apps have the options right there. NICE!
On the iPhone, you scroll from screen to screen searching for your app (or use the never used search feature that might help). If you're an organized freak, then you have certain screens for certain types of apps (which I had until the fourth wipe out of the iPhone and gave up). With the Droid, you only have 3 screens to place icons, shortcuts or widgets by default (It's my understanding there are a few apps that give you more screens or desktops, but I haven't played with them yet). The widgets take up too much screen room, so I generally use shortcuts. However, you can create folders. VERY NICE!

Multi-tasking was always my biggest complaint on the iPhone. I wanted to listen to Pandora while collecting my road treasures on Waze. Not Possible. While this is possible on the Droid, I see the setback. A majority of apps written for the Android platform don't seem to come with a Quit option. You must use a free app that kills any running services. I pull this app up close to 5 or 6 times a day. I do use the Quit function in an app when it's available, but it is my belief that this should almost be a standard for these applications.

Multimedia seems to work equally well with a much better sound quality coming out of the Droid. Videos look phenomenal on both devices, probably better on the iPhone with it's slightly larger screen. Sound sounds way better coming out of the Droid due to the larger speaker on the back that is roughly 1/4" high and spans the entire width of the phone. I always hated holding the bottom of my iPhone to my ear to hear something low coming out of that tiny speaker down there. I rarely ever use the built-in speakers anyway as I've mostly plugged my devices into my car stereo when I listen to music.

Application Quality is the biggest let-down for the Android platform. The Facebook application doesn't work nearly as well as the iPhone's version and most of the games are more arcade like than iPhone's. I've not had any real issues with finding applications that suit my needs. I can still SSH into my servers, listen to my favorite internet radio stations and play car racing games. I can still track my mileage, record my expenses and check the weather complete with radar. I can ALSO see how many satellites have me for GPS, view the location of nearby wifi hotspots and their quality and BEST OF ALL buy MP3s from Amazon with NO DRM W00T!!!
I say it's a let-down because the apps just don't function the same and have the same usability. Perhaps I'm just used to the iPhone interface and need some adjusting, but they just seem a little "clunkier".

Service, keep in mind I didn't say customer service, is the biggest improvement I've seen. Sure this isn't a comparison of iPhone to Droid as much as it is a comparison of AT&T to Verizon, but I have to mention it. I have not dropped a single call yet (2 or 3 times a day on the iPhone). My calls actually ring on my phone instead of a voicemail popping up 15 minutes later when I walk outside. The call quality is outstanding.

iPhone - End user toy. It just works. If you're happy with the way it works, then it's great for you. A simple clean interface that just about anyone (even my 3 year old) can pick up and learn how to use.
Droid - A techie toy. It works and it works well. If you don't like the way it works, you have options to change it up. You have applications that actually alter the user experience. My kinda gadget!

Sunday, January 17, 2010

Restore address book from iTunes backup

I've recently had my last iPhone stolen and went ahead and made the switch to Verizon with the Droooiiiiiid (I love that ringtone). My problem was that I had no way of retrieving contacts since I didn't sync the contacts with any mail program or contacts because I strictly use gmail and their web interface for mail. Perhaps there was a way to sync those contacts with gmail, but I was unable to find the process.

So now, the only chance I have of retrieving my address book is through the backup files made by iTunes. I was using Windows 7 Home Premium at home (only because I had the opportunity to buy an advanced copy for $50). iTunes stored the backups in C:\Users\<username>\AppData\Roaming\Apple Computer\MobileSync\Backup. I found a very useful tool called iphonebackupextractor. I ran it from the windows machine and was able to export the Address book sqlite database with it. After that, it was clear sailing. I suppose I should mention that the only reason this tool worked was because I never told iTunes to encrypt my backups. If you do have them encrypted, you will have more issues.

I copied the sqlite database file to my linux computer and went at it from the CLI that i'm comfortable with.

From here on out, I'll be posting actual commands with notes:

sqlite3 /path/to/sqlite/file
.headers on
.mode csv
.output addressbook.csv
select ABPerson.first as 'First Name',ABPerson.last as 'Last Name',ABMultiValue.value from ABPerson,ABMultiValue where ABMultiValue.record_id=ABPerson.ROWID;

Now I had addressbook.csv on my drive and imported that into my Google contacts . I had to do quite a bit of cleanup after this. With a little more research and some tricky SQL queries, I could have fixed most of the issues.

Basically the ABMultiValue.value field is a lot of things such as: Notes, Email addresses, Phone numbers... all related to the contact. I could have identified each value type and labeled them as such, but 90% of my contacts only had phone numbers. Google contacts gave me a quick and easy way to merge duplicates and such so it wasn't too bad dealing with my 200+ contacts.