Interaction Design: A Visual Command Line
Interaction Design February 28, 2008

Code is essentially comprised of a bunch of functions that achieve some task. In the old days of computers, users would utilize these functions by typing something in some kind of command line. Even these days when writing programs, users can "interact" with them by simply writing function calls like the following:


> Cat c = new Cat("Muffin");
> c.meow()
> int x = c.calculateExponent(4,7);

In a visual design class, people create some form of static artwork (graphic design, drawing, painting, photography, etc.). In these cases, we are able to simply look at the final product, though we can't interact with it necessarily. There are plenty of design principles when it comes to layout - and in a sense, you would "interact" with a magazine based on its layout. Still, there's a limit to what choices the user can make. For instance, the user can't contribute anything to the magazine as though it were a public forum. Likewise, the user can't comment on an article in real-time nor can he/she add photos and whatnot.

Enter technological interaction design - a way for us combine the interactivity associated with command-line interaction with the visual designs we see around the world. Websites have, by far, the closest relationship between code and visual design. Yes, there plenty of elements of visual design in software, but websites are essentially a virtual piece of paper with all the same abilities that print design have and one extra component of interactivity.

Webpages are called "pages" for a reason. That terminology isn't used in software. We have the ability to print text and images just like we could in a newspaper, magazine or flyer. But whereas a poster you might see on a wall somewhere is static, we can now include users in our technology, allowing them to add to it, shape it, use it.

So when we design for a website, the functionality is more of a given. Everyone can write code. The focus is on how the code gets executed and the experience the user gets when interacting with it. This is interaction design - fusing visual design with coding functionality and defining how the two relate to each other and to the user.


Other Interaction Design Posts

Feb 18, 2008

Multi-Touch Interfaces

The multi-touch interface is emerging of late as the new interface for digital devices, what with the iPhone, Macbook Air, Microsoft Surface and others. With this comes a whole new way of human-computer interaction which...

Feb 06, 2008

Apple Breaks The Consistency Rule

My friend Elliott informed me that there's a discrepancy between the MacBook Air multi-touch interface vs. the iPhone interface and it's quite fascinating. A major part of Apple's Human Interface Guidelines (Found Her...

Jan 15, 2008

Is Prototyping Necessary?

Many web designers stress the need for heavy site prototyping and planning before the actual coding happens. That is, they sit down and after outlining the information architecture, plan the design with all the images an...

Dec 27, 2007

Choices: Less is More

How many ways can you eat a Reeses? How many ways can you turn off your computer? People like choices, but they don't like too many. I was reading a bit from Barry Schwartz's "Paradox of Choice" and was intrigued on the ...

Dec 11, 2007

Design is an Experience

What is design? Is it the graphics we use? The colors? The fonts? Yes, those all have some effect on the end experience, but I'm talking about something bigger. Something more encompassing. Design is the whole experi...

Nov 27, 2007

Spaces

Define spaces in your application. Too many websites and desktop applications jumble everything else. Again, like a house floorplan, divide everything into spaces and figure out the 'transition functions' between them...

Nov 26, 2007

Designing in Steps

If you're creating an application that DOES something (as opposed to say, a website where users just search for something) it's essential to design in steps. What does that mean? You need to figure out how to user int...