Saturday night, I got into a very heated discussion with my friend
Mike over on the Windows Live Mobile team about developing interfaces for mobile device browsers.
Tonight, I noticed Mike posted about a related issue on his blog:
Mobile WL Mail and screen widthAnyone who has developed software or web pages for mobile devices has run into the challenge Mike discusses. I'll sum it up like this: 80% of mobile devices (think: the free phones you get with a new cell phone service contract) have very limited capabilities. Their web browsers support a very limited set of functionality, can only load pages up to a certain size, etc. You, the developer, need to optimize around this 80% of devices with crappy browsers. The side-effect and problem is that now your UI looks horrible on those cutting edge brand-spankin'-new Smartphone devices.
But I guess I think differently than Mike, Mike, and Tim on the Windows Live Mobile team as to the best way to conquer this challenge.
I agree that supporting the lowest common denominator of mobile browsers should definitely be the highest priority, especially since the large majority of mobile browsers fall into that category. And trying to detect every browser and every device's screen width would be like trying to move Mount Fuji!
But that said, a good compromise might be to detect the most advanced mobile browsers (like, through the IE Mobile, Opera, or other user agent), which you know do support tables and other advanced features, and then doing some work around optimizing for those as well.
That way, you support and optimize for the early/late majority of users carrying devices with sub-optimal browsers, but you also support the small but highly important group of early adopters buying Windows Mobile Smartphones and other 'smart' devices. These early adopters are not only highly vocal, but are also the developers building the next generation of mobile software. There's also a chicken and egg problem here. If you want people to buy expensive Smartphones with x, y, and z capabilities, you need to build software that takes advantage of those capabilities.
So, supporting 80% of the market is important. But the tradeoff doesn't have to be losing the other 20%. You can optimize for both.
And, for what it's worth, I still use
Google's mobile search, not
Windows Live Mobile's, because it's UI takes advantage of more capabilities of my Windows Mobile Smartphone. How ironic that Google builds a service that is better suited for a Microsoft platform. But Mike says the WLM team is working hard to fix this problem, so kudos to him and his team for that.
Some other interesting reading on this subject:
My previous post on Assumptions and Defaults in the context of mobile developmentMike's previous post: 'PC sites on mobile phones'Scoble's one wish for 2006MobHappy on Optimized Sites vs Optimizing BrowsersRussell Beattie Reformatting vs. RethinkingPopular subject.
As a sidenote, Jill and I faced a similar issue over the weekend in developing
Ping, and we're only developing for Windows Mobile devices. The challenge is that even within the family of Windows Mobile devices, each device can have a vastly different resolution and orientation. We settled on dynamically laying out every single UI element as it is loaded based on the width and height of the screen and other UI elements on the page. A bit extreme, perhaps, but necessary to achieve an excellect user experience in the context of a very limited UI framework (albeit one of the best available for mobile devices!).