Wednesday, December 3, 2008

Google and T-Mobile: Six Weeks with my G1


Six weeks ago, I traded in my Verizon Wireless account and my Windows Mobile 5 phone for a T-Mobile account and an HTC G1. This phone, one of the potential competitors with the unstoppable iPhone, comes equipped with the Google Mobile Operating System, known as Android.

Originally, I had planned on writing a one-week review. After a week of use, I had only scratched the surface of use and had not fully integrated the phone into my life and work. Now, after having it for the holidays and spending a significant ammount of time looking into the developer experience of working with the phone, I humbly submit the following review for the reader's delight and consideration.

The Hardware

The hardware was the first thing I noticed in this model: HTC and T-Mobile no slouches in creating a usable phone that I continue to enjoy, despite some small problems.

The keyboard is excellent. Bigger than my old, chunky Samsung i735, it has the kinetic feedback that I found lacking from the iPhone - touching a screen is not the same as touching a button and only when we have developed and deployed kinetic-feeback LCDs will they be the same. Buttons are good. Some of the key placements take a while to get used to, but after two weeks, I was texting and typing with very little problems.

Also, to reveal the keyboard, you have to slide the screen up in a way that feels natural. On the back, is a curved track that makes the motion intentional without feeling forced.

Next is the screen - bright and responsive to the touch. I've been using a screen protector and even with it on, the brightness is clear. Some of the YouTube videos are grainy, but this is a phone and PDA - not a projector. The touch is responsive although it sometimes lags - this may be part of the screen protector.

The battery is fair - it runs down quickly when you have all of the bells and whistles turned on, so I spend most of my time just on the 3G network with GPS - no wifi and no bluetooth, unless it's plugged in. However, charging the phone is trivial - it takes a mini-USB plug at the bottom and once you attach the phone to a USB 2.0 prot with power, the phone starts charging. Since I have about six of these cords laying around from old phones, cameras, and other peripherals, finding a charging outlet is as hard as finding a computer.

Sound is also fair - the phone itself supports MP3, OGG, AAC, and WMV. With the built-in speaker, the music is great for my one-year old nephew, but not me. With headphones, music becomes vibrant and listenable, with this device replacing my iPod Shuffle and Creative Zen as my music player of choice.

Finally, a sore spot in the whole experience - the camera. I have not used an iPhone camera, but the G1 camera has such a large lag time to focus and adjust its internal light meters that I might as well draw the picture myself. Most of the photography I do is spontaneous non-still shots, which makes this phone useless for those quick "whip-it-and-click-it" moments. I am still carrying my SD1000 daily.

The User Experience

The software user experience is very well done - the landing page has a number of slots on them for different application icons that you drag and drop to where you want them. Very well done, and the feedback on moving the icons around feels like you're moving a tiny postage stamp around a page.

When notifications come in, they appear on the top bar and you have to drag it down to view them - this includes anything from text messages, emails, to running application status. It's a good way to see what is in your 'inbox' for the phone itself - I can context switch between texts, email, chats, and music with a few clicks.

Speaking of email and chats, the integration with Google's services is excellent. I often get emails and gChat messages to the phone before the appear in my browser. Since the keyboard is good, I have fallen back to writing small emails and chats from there, rather than sit at a computer.

Some of the UI elements need work in the second revision. Chief among these is the date and time picker, neither of which have the correct roll-over of the date when you go past the end of a month. Instead of going to the next month, it returns to the start of the current month - this could be easily fixed. Also, having to click seven times to move a date ahead a week is very annoying - Windows Mobile is the best interface for this that I've seen so far. They give you an outlook-like calendar and you just select the box one row down from the current date.

The stock applications are good for a casual user, but most users want more. The application store is currently all-free and has a lot of great applications - I currently have a bartending application, the Consitution, an SSH client, Facebook, and Twitter, to name a few. (I don't expect the number of apps to reach the size of the iTunes store, but I also don't expect it to reach the same level of silliness.)

Speaking of apps, let's talk about...

The Software Development Kit

The SDK for applications is a Java variant that uses XML for describing the layout and resources used by the application builder. It's fairly intuitive and has great Eclipse integration.

Unfortunately, the APIs are so poorly documented, when you get stuck, you get stuck very hard. Parameters are often abbreviated with no documentation on what they expect as inputs or provide as outputs. You're left with guessing as to what the designered expect.

Several books are on the market right now, and I have not had a chance to look into them - I'm willing to bet that having a non-Google written guide would go a long way for getting your development process kickstarted.

Conclusions

It's too early to tell if Android is a winner - it feels very much like a "version one" product and after a refinement period it will have the kinks kicked out - I'm happy for now and glad I made the switch.


"Be civil to all; sociable to many; familiar with few; friend to one; enemy to none."
Benjamin Franklin