As Wikipedia points out (http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29) , “a design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.”?
Interaction design patterns – specifically – are those elements of the interface that are now popular and ‘almost’ standard. These have become a common solution; think of ‘log-in’ form, search engine interfaces, paginations,. These are all things that do not need to be re-invented, as there are plenty of good cases already existing. The benefit of using an established design pattern? Users understand easily how it works, because they have seen it in the past. And designers and developers can focus on some other part of the application.
However, it’s not always a good thing to adopt a design pattern, especially if:
- Users of the application you want to build are not familiar with that pattern, it may generate confusions;
- The problem you need to solve is different from the one that the pattern would be good for (don’t make your interface look like a search engine, if it is not a search engine!).
In these cases, it’s good to adopt a specific solution, which is different from the typical design pattern.
There are lots of places where you can find some of these design pattern collections. The only thing you need to do is to check them and see what is the best solution for the application you want to build. Here you can find - among the others - some of the most popular:
- Yahoo pattern library: one of the most complete libraries for web design user interface patterns. It focuses on interface elements used by yahoo in their products. http://developer.yahoo.com/ypatterns/
- Welie interaction design patterns: it’s a complete collection of good examples from different websites, classified by type of interaction. The categorization may seem a bit difficult to understand if you are not an expert interaction designer (e.g. what is an ‘Accordion’ in a website?), so don’t be scared and click the links to learn more and see pictures of these examples: they will help you become familiar with technical terms. http://www.welie.com/patterns/
- Vodafone mobile widgets design pattern collection: this is a document (pdf format. If you need a software to open pdf files, you can find it here: (www.adobe.com/products/reader). The document contains a lots of examples to design software widgets for mobile. Is shows patterns used to design applications for the Vodafone 360 suite of services. As a designer or developer, these are useful and inspiring even if you are going to build your software for a different platform. https://developer.vfnet.de/c/document_library/get_file?uuid=4cfb7bae-046e-4734-8c38-a99f327b7618&groupId=10136
- Nokia Design and user experience library: this is a complete resource for developing applications and software for mobile, according to Nokia design guidelines. It has lots of examples of applications designed for Nokia phones, and access to some code, to make developers’ life easier. http://library.forum.nokia.com/index.jsp?topic=/Design_and_User_Experience_Library/GUID-A8DF3EB8-E97C-4DA0-95F6-F464ECC995BC_cover.html