Posted
by
timothy
on Saturday September 10, 2011 @07:52AM
from the making-things-pretty dept.

DeviceGuru writes with this interesting snippet on a modern approach to GUI design: "Netflix uses WebKit, JavaScript, HTML5, and CSS3 to build user interfaces that are delivered to millions of game consoles, Blu-ray players, Internet-connected TVs, and devices such as the Roku player and D-Link Boxee Box. Matt McCarthy and Kim Trott, device UI engineering managers at Netflix, have just published 50 presentation slides from their recent talk at OSCON 2011 in which they explained how Netflix develops its WebKit-based user interfaces."

I read the presentation and I found it interesting because of the challenges of developing the interface for a wide variety of platforms with vastly differing capabilities. I am in a constant battle with my own software guys to get them to develop for a lower performance hardware, instead of always giving me code that needs the next generation hardware to have an acceptable user experience. Sometime I miss the old days when software developers HAD to think about the hardware they were running on and optimize their software appropriately. I can remember when some software would actually run TOO fast when it was run on newer faster computers....Those days are long gone, many of the software guys I know have little understanding of what goes on under the hood and really don't care unfortunately - I am going to make sure some of them read this presentation

Closures are in the heart of JavaScript. You can't avoid them even if you want to. Instead, learn to write destruction lifecycles for your objects in which you expressively remove references that may cause leaks.

Netflix already does some statistic collection for how many of each client is being used - I remember and some gaming show they mentioned how many people watch Netflix on each of the consoles. The biggest problem with attempting to watch Netflix on Linux (or BSD) is the fact that there is no application nor a browser plugin. Supposedly somebody is working on a Chrome plugin which is based on the ChromeOS plugin, but I haven't seen anything about it actually working just yet.

I cared about that before I ditched them. But then again, I didn't care that much because I found it to be more cost effective to buy a Roku than to pay a similar amount of money for an HDMI converter box for my TV. OTOH, had I had HDMI inputs on my TV, I would just hook my laptop up and save the money for something else.

Yep. PS3 is also the same Netflix pile of ugly, which is such a shame because the possibilities on that platform are nearly endless.

Then again, it does follow Netflix' business model - only make it usable enough to keep the customer subscribed, not to keep them using it. With a flat rate streaming subscription the more usable they make it, the smaller their profit margin...

I was impressed with it until I tried to use Netflix on my iPad and it crawled like a sloth in molasses. Recently, I browsed through the movie selection on my Xbox for the first time and a long while, and was blown away with how smooth and slick the user interface is.

Different platforms have different needs and capabilities. Why is the UI in my very limited Roku interface (with its very limted controller [gawkerassets.com]) the same as the one on my very capable Windows laptop (i.e., on their website)?

Maybe it seems cost-effective (if you don't count user frustration), but the horizontal-scrolling UI works when it's controlled by hardware arrow keys (Roku), but it's much less than optimal on a webpage (Windows). And my Windows laptop can handle much more functionality than a Roku; too bad they removed all/most non-Roku functionality from the website.

In the slideshow, they acknowledge there are differences between platform UI needs, but they seem to try a one-size-fits all approach. Doesn't Netflix have the resources to develop multiple interfaces?

It's so slow on the Wii! I recently upgraded from an ancient installation on the wii and was surprised to find out it was less buggy but much slower. They must have gone from native code to web-based. Bleh.