Friday, February 9, 2007

Launching a Mobile Client

We launched the Gmail for Mobile app in the UK, France, Italy, Germany, and Spain this week. This is a really difficult thing to do. Of course there's a lot of work in getting all the strings translated and making sure everything shows up nicely, but this is only the start.

Carriers in different countries have different devices, data plans, network restrictions, gateways, etc. It's never clear whether or not the application will run in any of the countries where you want to launch. The way things are now, the only way to know for sure is either (1) know someone in the country who has a phone and/or can buy one or (2) fly someone there. Seems crazy, but this is the only real way to know for sure.

And what if it doesn't work? How do you fix it? You could fly a developer there which is bad because (1) it's expensive (2) it's often not clear that the problem can ever be fixed (3) developers don't like having to fly all over all the time to fix very specific bugs - they like fixing more general problems or implementing cool new features. Debugging remotely is (needless to say) a nightmare. So, no matter what you do, it won't be pleasant.

I guess this is part of why mobile applications are so slow to gain popularity around the globe. Most are only popular in certain countries and are unheard of everywhere else. If it's a hassle for a company like Google, with all our resources, I can't imagine what it must be like for all the little startups.

Tuesday, February 6, 2007

Laptop Magazine - Editor's Choice Award for Gmail for Mobile

One of the projects I work on at Google is the Gmail for Mobile client for cell phones. It was released back on Nov. 2, 2006 and has received lots of press since then. In February's edition of Laptop Magazine, it was given the Editor's Choice award, which is nice. I think our most common compliments have been on the usability and Gmail-y feel of the app. The most common complaint is: "It's missing feature X", where X is one of many, many possible features. Some X's can be implemented on many phones, some on a few phones, and some on about one phone. Hopefully as phones become more and more capable, all these X's will be at least technically feasible. Then it will just be a matter of finding the time to get all these things working. Which is, of course, a much harder problem.

Friday, February 2, 2007

User Agent Switcher

If you do any mobile development, you should definitely get to know the User Agent Switcher add-on for Firefox. What does it do?

Well, when a browser sends a request for a webpage, it includes a string describing some information about who is sending the request (e.g., the browser name, version, etc.). Mobile browsers (well, most of them) send information about the device make, model, MIDP version, etc. Websites can use this information to decide what page to serve up (if any).

The User Agent Switcher add-on allows you to pretend that the request is coming from any device. This means you can see exactly what page would be served up if that device visited the website. How does it do this? By spoofing the user agent, of course. For example, if you want to see what a website would display if you hit it with a Nokia 6230i, you can have the User Agent Switcher send the following user agent: Nokia6230i/2.0 (03.23) Profile/MIDP-2.0 Configuration/CLDC-1.1

I won't go into details about how to use it - it's pretty simple. But, it can be extremely useful for debugging websites, especially those that only have issues on certain devices. There are lots of other nice tricks you can play with the User Agent Switcher to test and debug problems. I'll go into more details in a later post.