I posted this in my blog, but felt it was of sufficient value internally to merit a cross post here...
So since Microsoft have released the Surface SDK at their Professional Developers Conference.
At Conchango where I work we’ve got some developer units in the U.S.
and have had the SDK for a while now. I thought I should offer some
advice for building surface applications having looked at quite a few
recently.
- It’s not just multi-touch it’s multi-user too. The
surface is something that you get people together standing around. With
traditional computing you detach from the world around you and immerse
yourself in the terminal. The surface is part of the world, so think
about the fact that even when one person is using the device there are
probably going to be other people watching them (the surface has a
gravitational pull that draws people in to watch). The best
applications consider and even take advantage of that social element
and the possibilities for collaboration as many people interact at the
same time.
- Drop the dropdowns. There is a subtle shift going
on at the moment. It’s probably not unfair to say the iPhone was the
butterfly flapping its wings that initiated it (albeit that the iPhone
launch was a pretty huge butterfly). This is the change from the GUI
(Graphical User Interface) to what is being dubbed by some the NUI
(Natural User Interface). This has the potential to be a change on the
scale as the change from punch cards to the command line or from the
command line to the GUI. This means we need to think beyond the
traditional componants we used to make up our interfaces. Where we
might have classified an item into a group before by using a drop down
control or a radio button, now we’re moving the item (or some
representation of that item) into a space which represents the group.
- Go beyond the interface. I said before that the
surface is part of the world in a way that a computer screen, mouse and
keyboard is not. The great thing about surface is that you can really
take advantage of that. By using domino tags (these are stickers which
you can put on an object to let the surface identify it, like a barcode
but smaller and looking slightly like a domino) the surface can
identify objects that are placed on it. This could be you’re work ID
card which you pop on the table so the surface knows that it’s “you”
who’s using it. Maybe it then switches to your personal settings or
knows where to save the output of your session. Or you could put them
on the bottom of your salt and pepper shakers and your ketchup bottle
to record those football tactics you came up with over dinner come to
life.
- Come at it from every direction. At a monitor
there is a very definite up, down, left and right. Some phones and
laptops do some clever things with accelerometers but they always need
to know which way they are facing. The surface doesn’t need to know
which way it’s facing cause it’s facing in every way (that said I don’t
recommend putting a surface in the ceiling even if you want to spice up
your love life). People should not have to be stand on a certain side
of the surface to use your app. The best applications use the surface
technology to work out where people are and if there is text or
controls it spins the text, images or video to face them.
- Make it feel right. This is one of the
most important aspects and at the same time one of the hardest to
explain in words. But you know it when you see it or interact with it.
Some things feel good to use (Donald Norman calls it the visceral aspect of design);
it could be the satisfying click of a marker pen when you put the lid
on, or how the shape, weight and handle on your favourite mug feel just
right. Nature tends to be really good at this. What makes up good
visceral design? The harmonious combination of interaction and
feedback. When I hit the bottom of the menu on my iPod Touch it bounces
softly. If I flick the menu so it’s moving faster when it hits the
bottom it bounces higher than if i slowly scroll down. It feels right.
- Think BIG. This is a paradigm shift and there are
no rules. My tips here are observations from seeing what’s been done so
far and looking at what works and what doesn’t. But this is something
genuinely novel to most people so you have the opportunity to create
something really great and ground-breaking that’s never been done
before. Take that opportunity.
If you like what you've read (you've gotten to the bottom of the post at least) give it a digg.