Stranded In The Southland

Sunday, December 14, 2008

Hacking the Google Phone (G1)

I got pretty excited about Google's new phone, the G1. It's a phone with keyboard, GPS, and WiFi -- plus the software on it is (almost) all open source, including an embedded Linux kernel. What's not to love!?

Well, lousy reception from the provider, T-Mobile, is one thing not to love. I checked even before buying the G1, and several people in the neighborhood assured me that T-Mobile's reception sucked here, and one person claimed that they had to go outside to get any reception at all. I went ahead and bought one anyway, figuring that I could always return it (California mandates a month-long return period) if it didn't work out.

The phone itself proved to be exciting. The interface is a little rough, but if you think of it as a beta (like all Google products), it's not so disturbing. I found that the little phone was fairly robust, and only had to be rebooted a couple times (which is more than I can say for the Treo I've been using).

There are lots of great applications for the phone, and more coming out every day. Unlike the iPhone, there's almost no limit on what you can do on the phone, and no limitations on what software you can load. Woo hoo!

In fact, I promptly dug in and started writing an pilot's calculator for the G1. The development was in Java, which I've somehow managed to skip learning all these years (not much use in writing network protocols or device drivers!). I'd always kind of meant to learn Java and Eclipse (the Java IDE of choice), but never had a good reason.

This proved to be a great reason, and I've had a fantastic time learning a new language, a new development environment, and a new GUI API. This is just so much fun! I've seen other folks comment that Google Android API is far better than the other mobile environments out there; if so -- whoa. It's tough to use, tough to learn, and just much nastier than the various X widget sets I've played with over the years. I guess it is much more robust than the Palm environment, but possibly a bit more complex. It took me far longer than I'd hoped to get even a basic application together, but I keep embracing the complexity, layering on Subversion and every other little tool I'm likely to need to make this work in a professional environment.

All in all, though, the development's been a blast.

Unfortunately, the reception was so bad that I eventually returned the phone. Doh. I'm hoping that AT&T or Verizon will offer the G1 (they both have good reception at home), and I've continued to hack on my little app, just so that I can learn something new. We'll see.

[Yeah, there's a development version of the G1 that I could buy for twice as much, and run on AT&T's network, but then there's no insurance (I wind up getting a new Treo about every 15 months thanks to insurance and my clumsiness). Or I could spend about as much on a cellular repeater, but I've heard mixed reports about whether they work at all, and I don't want to chance it. Or I could get a cheap T-Mobile plan and swap sim cards with a cheap AT&T phone and run it that way, paying quite a bit extra for the privilege.

I think I prefer to just hang loose and wait for more options. My Treo isn't that annoying, and I'd like to have a good phone at a reasonable price with reasonable reception. I suppose that an iPhone would provide most of that, too, but I don't like their "We own your phone, we'll decide what apps you can run," attitude. We'll see.]