Web Application UI Guidelines? 27
Tom Davies asks: "Every GUI platform has a document which describes the conventions developers should use when building GUIs with that toolset. There are also lots of good resources for Web site usability (e.g. Jakob Nielsen's useit.com). But what about web -applications-? I am developing an intranet application which is aimed at people who use it every day, not those who stumble on a web site and need to be able to use it immediately. It can have a higher learning curve, but must deliver more 'client/server like' usability. Are there any sites/books which address how to make HTML GUIs for applications?"
2nd Post! A few resources for you... (Score:5, Informative)
And here [pearsoned.com] is a decent but damned expensive book on the topic. Fortunately, a couple of the P2P application developers are good at GUI design and have made it quite easy to locate this book in PDF eBook format...
Intranet Privacy (Score:4, Interesting)
I think software engineering design guidelines would be more appropriate for a web application that anything Jakob Nielsen could come up with. As you know, web applications and websites are two totally different breeds of fish.
Simple answer: Don't (Score:5, Interesting)
Ask Google about ui design guidelines for web applications [google.com]. IBM's Ease Of Use site comes up tops.
But, IMHO, you need to examine your choice of development platform (i.e. "web application") and your methodology. If you have already decided on your platform before determining UI requirements, you have issues.
Quite simply a web application can't deliver the same level of user interaction as a traditional C/S application. HTML (even with JavaScript) does not have a rich widget set for building UIs, which causes most intranet applications to have non-obvious even tedious solutions to common UI problems.
One of the few places where HTML excels is in displaying reports and non-interactive tables. By contrast, it is poorest at interactive tables and dynamic filtering.
Some examples: many applications with long lists have a facility to search-as-you-type, either focused on the list or in a text field adjacent to the list; applications with filter or present options based on another selection draw their data on demand in a C/S model, but in a web application must use submit-and-update or multidimensional JavaScript arrays and transfer ALL values to the client on the first request. Simple elements like menus and toolbars are difficult to get right and keep consistent in a web application.
Re:Simple answer: Don't (Score:3, Interesting)
I've been playing around with Mozilla's XUL a bit which overcomes alot of these problems. It's got a fairly good widget set and I'm sure we'll see it improve quickly. I'm not sure I'd want to invest in a whole intranet worth of XUL, but it might be good for some smaller applications if you can get your users using Moz. I wonder if anyone's thought of doing an IE plugin for XUL apps... prolly not much demand for it, but I hope that changes.
Re:Simple answer: Don't (Score:2)
I also agree with that. HTML was designed as a platform and device neutral method of document presentation, not as an applications development platform.
That said....If you really must:
http://www.w3.org/MarkUp/Forms/ [w3.org]
Re:Simple answer: Don't (Score:2, Interesting)
Re:Simple answer: Don't (Score:1)
Tedious, yes.
Difficult, yes.
But once someone has figured it out and componentized it, you don't have to.
Take a look at the latest rich GUI web presentation layers, like Isomorphic SmartClient [isomorphic.com].
Re:Simple answer: Don't (Score:2)
If you really want dynamic content in a web, you can use Java applets.
Re:Simple answer: Don't (Score:3, Interesting)
But why do you want a web based application (with or without Java applets) to begin with? The Web provided a common platform, ease of delivery to remote clients (and by extension ease of maintenance), and an easy display language for simple presentations.
The value proposition of the Web is now significantly reduced in light of alternative technologies. Java, Tcl, Python, Perl and numerous others provide a common platform. Most either provide or easily permit a stub architecture for downloading the application from the server on the fly, negating the traditional remote maintenance problems of C/S software. Visual "builder" IDEs are commonplace.
These languages offer a powerful set of GUI widgets which beat DHTML on interactive use, and have proper RPC mechanisms (with several standards to choose from) rather than the submit-and-retrieve model that limits web applications.
Where a web application can use DHTML and XML to transfer a table, a Java application can address the remote table object as if it were local, or transfer the object to the client implicitly, at no development cost.
Re:Simple answer: Don't (Score:4, Insightful)
I guess that currently, there's enough expertise in delivering web apps that it's a good proposition. Whether that paradigm will continue in the longer term or not is a different matter, and time will tell as to the long term usage of web apps.
Re:Simple answer: Don't (Score:3, Informative)
Traditional web applications are pretty clunky, but you should look into Mozilla as a potential application toolkit.
The Mozilla browser is arguably the most complex program created so far using Mozilla and it compares favorably to a native application when it comes to functionality.
Some people will argue that Mozilla doesn't perform well, but apps created with Mozilla are portable and could be used on Windows, Macintosh, or Unix systems (and several operating systems that you would never expect). The cool part is that your code would not have to change.. it's the same for every platform.
Your web development skills will come in handy, because XML, CSS, and JavaScript are what you use to create applications in Mozilla. There is no compiler required.. just text editors!
Check out the tutorial on the XULPlanet website.
http://www.xulplanet.com/
A new O'Reilly book that gives an overview of creating apps with Mozilla was created with the Open Publication License and is online as well as available from O'Reilly.
http://books.mozdev.org/
Other sites to visit...
http://www.oreillynet.com/mozilla/
http://www.mozdev.org/
web app presentation layers (Score:2, Informative)
You want client/server? (Score:2, Interesting)
I am so sick of seeing browsers forced to do things they just don't, can't and shouldn't do. It's NOT the catch all wonder solution. Christ, writing a freaking VB client is at least as much a joke as writing a web page.
Do the write thing, don't follow the lemmings.
Re: (Score:2, Interesting)
Re:You want client/server? (Score:2)
Mozilla, Perhaps? (Score:3, Informative)
Non-Alanis Morissette ironic? (Score:2)
Irony is a straight-forward, take-me-as-you-find-me word that has only one meaning.
You don't seem to have appreciated that fact.
Which, to be honest, is pretty ironic.
Here's a good book on the subject. (Score:1)
Codenotes for Web-Based Ui
I've only read skimmed through it a bit while at the store, but everything I read it in was quite helpful and interesting.
Some stateful, something tasteful (Score:3, Informative)
As for design, my thought is that standard GUI design rules (for the most part) apply. Consistant look and feel across screens (so the "add record" button isn't in a different place on every screen), clean asthetics (color, fonts, separation), meaningful labels (book title capitalization), no Peoplesoft-esque nested scroll bars, logical grouping of similar items, etc. Without knowing what your designing it's hard to say for sure, but if you've ever designed a GUI that didn't make users have seizures or get motion sick, most of those same rules apply.
Web desktops? (Score:3, Interesting)
Today, such applications are much easier, and with Mozilla at least (XUL, etc), should become more common.
My question is, what happened to the early stuff? Some of it was amazing and fascinating, even if a bit crufty. I assume it died off because it just didn't catch on, or it really wasn't up to the task of better (read: full blown) applications. But the idea of having a remotely accessible desktop anywhere, web based, etc - seemed interesting (and yes, I know about VNC, as well as X)...
Re:Web desktops? (Score:1)
Re:Web desktops? (Score:2)
$a = new PApplication("happyhello", "Hello World");
$a->setCaption("Demo");
$hello = new PPushButton("Hello, World!");
$hello->resize(100,30);
$a->setMainWidget( &$hello );
$hello->show();
$bob = new PPushButton("Praise Bob!");
$bob->resize(400,100);
$bob->font="Italic 72px Times New Roman";
$praise = new PDialog();
$praise->setMainWidget( &$bob );
connect( &$hello, "clicked", &$praise, "exec");
connect( &$bob, "clicked", Pt, "about");
$a->register( &$praise );
$a->exec();
--
Evan
this one (Score:1)
Common Sense, mostly (Score:2, Informative)
There is not a single authoritative book that covers all browsers primarily because each browser has gone its own way in terms of standards (IE has JScript, ActiveX, etc.; Mozilla's options have been listed ad nauseum; Opera, Netscape, etc) I've generally followed the spirit outlined in Macintosh Human Interface Guidelines, Windows Interface Guidelines (both of the previous are very old), Designing for Web Usability, and my own common sense based on what I've seen that works.
I will state to all of those who say "well, do a true client/server" that saying that is short-sighted. Part of the design process has to look at it from the company point of view, in addition to "what is really sexy or easier for me to develop."
As an example, a typical company also has to think about support costs, as you now have to deal with "how are the client machines configured; what are they running"; "how do I deal with updates/changes"; "who is going to deal with installing the client everywhere?", etc. (and, yes, those same issues come up with "browsers", but browser compatibility and configuration issues are often more cut and dried) Basically, the tradeoff facing many companies is "cost of developing an application that takes a developer a tedious length of time to get the menus right and test with various browsers and systems" versus "cost of developing an application that will need support on the client side and that someone will need to test on various systems".
Additional factor for many companies is that people have become accustomed to the Web; so a well designed Web application should have a lower learning curve and a cheaper support curve - in general (and I'm generalizing wildly) Can I think of specific cases where I've done a client/server intranet app rather than a Web intranet app? Yup. Each case is different and must be judged on its own merits.
User Interface Guidelines (Score:1)