Google has posted many of the talks from Google Devloper Day 2007 on YouTube. Gummi Hafsteinsson, a Google Mobile Applications Product Manager, gave an excellent overview on building for the mobile web. Key points in the presentation include:
- Keep it simple–get your site working on a single basic device first
- Focus on features your users will need while they are away from their desk
- Resize images so they are just big enough for the device to save the users time and money
- Be careful of simulators. Many apps will work on the simulator but look bad or crash the real phone
- Entry level phones are a large chunk of the market but are very limited and your app may crash them
So how does Google stack up against their own criteria for building better mobile web sites? Let’s take a look at mobile gmail.
I use gmail on my mobile phone to check my email while I’m away from my desk. My phone doesn’t support the downloadable java version of gmail but the mobile web version works.
They layout is simple and downloads quickly. The mobile version of gmail is clearly tuned for quickly checking your latest messages and sending out quick emails while you are out and about. The latest message in your inbox are at the top of the page while navigation is at the bottom.
Less used features like labels, contacts, and mailboxes are pushed to secondary pages. Features you are unlikely to use like settings aren’t even on the mobile version of the site.
accesskey attributes on links allow for quick navigation to compose a new message or return to the inbox by pressing the 8 or 0 key, respectively. When viewing messages and conservation threads there are additional access keys for replying, and forwarding messages.
My only major gripe with mobile gmail is their overly aggressive pagination for the inbox and the especially the emails themselves. They do this because many older phones can’t handle large page sizes and download times would be long on slow networks. However, my phone can handle a lot more html than google spits out on each page and I’m on a fast 3G network. If their pagination code has the ability to change the amount of content on each page it is too aggressive for me.
Dynamically changing the length of your apps page is where techniques like wurfl can be highly useful. During the Q&A, Gummi had mentioned wurfl for translating user-agents into meaningful device attributes. For an overview of wurfl and what it can do for your mobile app, check out Mobile Web Apps: Apple iPhone to Wurfl