Thursday, March 12, 2009

The TMobile G1

I recently got a TMobile G1 phone as a gift.

It's pretty darn cool. Like the IPhone, it features a touch screen interface, wireless internet access, GPS, and access to a market of free and paid applications you can run on it. Unlike the IPhone, the G1 also has a keyboard that's accessible if you slide the screen up. The phone runs Android, an open-source operating system based on Linux that runs apps written in Java.

I also downloaded the Android SDK and have been playing around with it a bit. My first app is a tip calculator called "TippinTime", which features an onscreen keyboard (for those who don't like the built-in keyboard), calculates the tip, total check, and split amounts for the tip and total.

Building an app with Android is pretty straightforward. The layout of onscreen elements like text fields and buttons is specified in an XML file. A Java file accesses the IDs of the elements in the XML file and let's you add functionality based on events like touching a button.

I plan on implementing a number of simple apps and trying to sell them for $0.99 a piece on the Android Market to see how that goes. An acquaintance recently put some simple apps for sale on the IPhone market and he's earned a few hundred bucks from it.

I'm especially interested in playing with the GPS capabilities. I was looking at an example today that let's you access the phone's GPS features and fetch features like latitude, longitude, altitude, speed, etc. There's an app for the IPhone called TrailGuru that graphs your progress while hiking or biking, gives you summary statistics, and let's you share them on a community website. I may work on a similar app for Android at some point.

I'm also intrigued by the barcode scanning functionality of the device. Here's a website that reviews two shopping apps that let you scan barcodes automatically with the camera built into the phone.

I downloaded a few apps to play around with them, and the scanning process itself works very well. Unfortunately, the database of current items is either incomplete or inaccurate for many products. For example, I scanned a box of Nabisco crackers as a test case.

One of the apps detected it as "The Best of Red Skelton" video.

Which is funny, but not all that useful. The apps did a good job of integrating with the web. I could scan a box of Cheerios and find the best deal if I wanted to buy them off the internet. But the most useful feature, comparing prices at local retailers, didn't work in any of the apps I tried, which kind of sucks. I'd like to be able to scan a box of cereal in my supermarket, and see what it costs in other stores in the area. Of course, this would mean that shopping would take approximately 100 times longer, since I'd be scanning just about everything in the store. But it would be cool, at least until the novelty wore off.

Bar codes are also on a ton of other things, from business cards in Japan to movie posters. Unfortunately, the hard part is building up the databases for reference. But I can already see the potential for this kind of technology, and it would be a lot of fun working on apps that exploit the bar code scanning capabilities of the phone.

I'm pretty impressed with the phone overall, but there are two big gripes with it. One, the battery life is pretty bad, especially when using some of the higher-end features. Also, the touch-screen interface is not very good. I put a screen protector on it, which I think has reduced its effectiveness, but even before then it wasn't working very well. I've seen some side-by-side comparisons with the IPhone, and I think in general the responsiveness of their touch interface is better. Although, the G1 does have a built-in keyboard, which does work pretty well. I'm not happy that there's no setting to adjust the touch-screen sensitivity, though. I'm not sure why...maybe it's very complicated.

Anyway, at some point I'm going to launch a simple website as a portal for the side projects (games and apps) I'm working on. I'll post a link here when it's up and running.


Philip said...

Did you come up with the name TippinTime?

"That's not my barcode!" could be a pretty funny blog.

Derek James said...

Did you come up with the name TippinTime?

Yeah...pretty snappy, huh?

"That's not my barcode!" could be a pretty funny blog.

That's true. I'll probably start going scan crazy. If I build up enough funny misreadings, I may actually start such a blog...or just post them here.