This morning when checking out the news feeds, I came across this article on how Microsoft released a Bing HTML 5.0 mobile client but Windows Phone 7 can’t use it since it doesn’t support HTML 5.0. Well that certainly is true for the current version of WP7.
Let’s peal a layer off of that onion and ask the question is HTML 5.0 right for doing mobile sites?
Just a point of order here, when we are talking about HTML 5.0 on the iPhone and Android, what we are really talking about is WebKit’s implementation of the soon to be standard, but I digress….
So here goes, here are pretty much three of the hottest devices right. The righteous iPhone 4 on the left. The high-end Android Nexus S on the right and finally the Windows Phone 7 HD7 in the middle. First off, let’s open up the browser on our devices and navigate to www.bing.com. it won’t look the same as on the Android and iPhone. Nope, it’s not running the HTML 5.0 version.
Ignoring the fact of the display size (Android has equal size screens) let’s take a look at what we see. First off, the android rendering of the screen on the Android device only shows the top 1/4 of the Bing home page, ok, maybe there are some settings somewhere that I can change to send a different user agent string and get a better rendering, but hey I always keep coming back to my mom and how she would use a phone.
Mom – my XYZ web page in the browser doesn’t look right.
Kevin – Oh that’s because you are…umm…let me see how to explain this…have your browser settings configured to render desktop pages rather than mobile ones. Ok, here is what you have to do…first….
Mom – Never mind, I’ll just go back to my PC.
Now that we got past that, I guess it comes down to the look, and how the menus work. On the iPhone I have a Metro style UI where I can move the menu up and down and click on an item. On the HD7, I have a static list of the left where I can click on a link. On the Android version if I play with it long enough I can get the same type of menu as on the iPhone. Maybe you like the iPhone and Android (well if it rendered properly) version but it’s not like “OMG, the iPhone and Android are just fricken incredible and WP7 Sucks!”
So now let’s look at what happens when I actually do a search, I’m going to search for Pizza.
Ok the iPhone and Android render pretty the same thing. One point for HTML 5.0. Now we are getting somewhere. We have two WebKit browsers rendering the the search results in pretty much the same way, whoo-hoo! This is a major step forward right? (now think sarcasm). Again do you like the Android and iPhone versions or the WP7 version look better…personally I dunno, I guess the iPhone and Android have maps but I’ll contend that’s more a factor of just being newer than being HTML 5.0.
So in summary…cool Microsoft adopted HTML 5.0 for iPhone and Android versions, and now all is right with the world and everyone likes them again? Nope they get the press saying…Microsoft bad because the new site won’t run on their flagship phone product. Also this begs the question of what did HTML 5.0 really do for the site? Let’s face it other than curing cancer, certain folks will have a predefined bias against anything Microsoft does. Let’s leave the psychology of that discussion to a different day.
Enter native version of the Bing Application
For each of the platforms there is a native Bing application, for Android there is only some sort of version for the Far East only…go figure Android users don’t like bing, shocker there eh? I did however find an application called NoBing…shocker again eh?
For Android and iPhone, these can be found in the marketplace. For Windows Phone 7, launching it is as simple as pressing the hardware search key. Now I’ve searched for Pizza again and retrieved the following results (yes the Android version is in some sort of Japanese or Chinese…no comment)
I’m not going to go into the details of the UX of the native applications compared to he HTML version, but try it for your self if you have one of these devices. It’s not that difficult to figure out if the native version or the HTML version provides an over all better experience.
Being a mobile developer, one that focuses on cross platform development, I can’t certainly say that using a web approach for some applications makes sense. Primarily if the application is small, and primarily read only. Also, I think one thing isn’t mentioned very much, but it’s important to reiterate. Both the iPhone and Android use flavors of web kit. If you’ve done anything with targeting these mobile platforms, you know that they are extremely close but not identical. Also it’s important to realize that different versions of both iOS and Android have different builds of web kit. If you are pushing the technology, you’ll quickly find that the different versions evolve and things just break. It will be very interesting to see the version of IE in WP7 VNext and see how the compatibility works between existing WebKit…er…I mean HTML 5.0 based sites and Microsoft’s implementation. If history is any predictor, if it runs good on WebKit and Microsoft follows the standard to the letter and it doesn’t run good on WP7, I’ll give you one guess on which implementation will get more bad press.
So from a mobile perspective, what can you take away from this? Again this is from a mobile expert where the majority of my experience is.
- HTML 5.0 (or for right now WebKit) isn’t the end-all-be-all for everything. The day of write once run everywhere isn’t just around the corner.
- If you need to build a small mobile application that only targets the iPhone and Android, sure you can look at HTML 5.0, but can we please start calling it WebKit? Also be creative, use some sort of frameworks to abstract the specific “stuff” you can really do some great things with this.
- For a large mobile application and this one is…hear me now, believe me later…it will take much less time, you will have a much better user experience, considerably fewer support issues and finally maintenance and finding resources to work on your application will be much easier if you go with individual native applications targeting the platforms rather than trying to write one application that runs every where (or at least targets WebKit). Trust me on this one…been there…done that…got the t-shirt. Please before telling me I’m wrong, have a very much non-trivial application in production before commenting about what you could do.