One of the topics that will be coming up for us is making "The Right"
UI for our client viewer, and I wanted to ask the collected wisdom of
this list what they are doing or thinking is the right way forward.
The problem with VWs is they are multi-use. They host an application
(the way a web browser hosts a web app), and must provide a means of
*both* supporting the application with a structured framework to build
on, and allowing it the freedom to draw application specific elements.
Moreover, what elements are required for a successful VW UI? Should
there be an bookmark menu and address input bar, or tabs, like a web
browser? Or does inspiration come more from video games?
For us, we have decided to use Qt as a framework for creating
graphical elements, due to Qt's excellent JavaScript integration,
which will allow us to "farm out" many UI tasks to HTML5+JavaScript.
However I feel that's just the technological underpinning, and we owe
it more to our users to make a coherent interaction design of some
kind.
One example of a web-driven UI that looks really good is Palm's Pre.
It's basically WebKit rendering HTML5+JS based UI elements called
"activity cards":
http://www.palm.com/us/products/phones/pre/index.html
However, to make it feel like an "native app" -- not just a web
browser, they've had to make a special purpose "window manager", which
is at the heart of webOS:
http://developer.palm.com/index.php?option=com_learn&view=learn
http://developer.palm.com/index.php?option=com_content&view=article&id=1772
Palm appears to be writing an O'Reilly book based on it's webOS,
starting here: http://developer.palm.com/index.php?option=com_content&view=article&id=1761
I feel that design an VW client UI essentially boils down to writing a
small application-specific window manager. Something that accepts
requests to show new UI elements, instantiates the correct objects,
manages layout with competing UI elements, handles input events, and
composites the UI over the 3D world.
Do you agree? If so what form should it take?
Cheers,
Forgot to link the community dev page for webos: http://www.webos-internals.org/
Infoworld article on webOS/mojo:
http://infoworld.com/d/mobilize/palms-mojo-sdk-pre-mixes-simplicity-rough-edges-032