Posted by

What’s Up with UX Design Patterns?

Over there on on the User Experience group on LinkedIn, there is a loong thread cataloguing existing UX/UI design pattern repositories.  Recently, a few folks have been asking, “so what’s up with these UX design patterns, anyways?”

Given that I’ve had a lot of experience with design patterns, both in software architecture and, more extensively, with UX/UI design patterns in my work on Infragistics’ free UX/UI design pattern explorer and design tool, Quince, I thought I’d offer some food for thought.  I put most of the following as a comment there, but I figured making it more top-level in this post would help.  Hope it helps you out. Feel free to ask questions/comment if you want! :)

Design Patterns have a very well-defined, long-lived meaning. As Steven H (another commenter) noted, we inherited the formal denotation first from physical-world architecture via Christopher Alexander and, indirectly, through software architecture. They are not just a new word for an old thing…

Using a pattern does not mean you are copying someone’s work. Design patterns are not algorithms, templates, or rote repeatable solutions. Design patterns rely on context heavily, both to validate that they are applicable and to inform the concrete design. That’s why it’s important to understand not just the problem that they solve and not just the solution (and certainly not to simply copy examples of it), but also the context and rationale behind them.

Like many things, design patterns are a tool, and they are not always applicable or even helpful. To effectively leverage them, you first need to understand what they are and when they are applicable.

In the end, design patterns are there, and you use them whether or not you acknowledge them formally. Every time you use a textbox in a UI, you’re using a pattern. Every time you use a drop down, you’re using a pattern. When you put a search box in the top right area of your app, you’re using a pattern. The list goes on and on and on (check out Quince for more examples, or any of the other design pattern repositories).

Where it can help to formally recognize them is to make you a more informed and cognizant designer, so you can better choose when to leverage which patterns. They can also help to form a common vocabulary to enhance team communication, and they can be building blocks for any particular design language. Personally, I think they are indispensable in a designers’ toolkit. At the very least, they make you more aware of and able to articulate the rationale behind your designs, which is crucial in arriving at the best possible design.

Tagged

HTML vs. Native Apps: The Jury is Still Out

Allow me to disagree with my esteemed colleague.  A few thoughts–just my opinion. He echoes another article I read recently (can’t find it now) that basically argues against native and for HTML5-based apps. I’ll offer a few points to the contrary here.

First, you don’t need a plugin for native phone apps, and often native apps run more smoothly. They also still tend give you a better chance of being discovered than, e.g., a pure Web search. AND, with a native app, you can get both Web coverage (host a Web page talking about and linking to it in the app store) and whatever app store coverage you get.

Another point in native app’s favor is that they tend to be optimized for particular platforms from a Design perspective, i.e., they feel native, they feel like the experience that the platform promises–the one that the person decided to buy over the others. They are also (usually) consistent, following platform patterns.  These points are not typically true for Web apps–especially since a major benefit (from the app creator’s perspective) is the whole “write once run anywhere” thing, so you end up with a vanilla app experience that is either native for one platform or for none.

About IE10 and HTML5–it’s not going to be immediately adopted. It’s not clear when, for instance, touch/gesture support will be pushed out to WinPhone yet. Even then, it will take some time for folks to update their phones, and you can’t effectively “be sure” it is there for some time yet.

This adoption problem is much more an issue on desktop. Saying HTML5 doesn’t require a plugin doesn’t tell the whole story because it requires a current browser, which for all intents and purposes serves the same function as a Silverlight or Flash plugin–the user has to have special software installed to use it.  And both of those plugins have much more of an install base right now than HTML5, and will for some time yet (a long time, in software years).  It would be very surprising to see major enterprises all moving to IE10 right away.  It would be nice, but I’m not holding my breath.

Three years from now, maybe it will be true that HTML5 is the obvious winner on the desktop, but I’m still not convinced it will ever be on mobile devices.  Most likely, the best strategy will be to come out of the gate with a mobile Web app OR choose a platform you think gives you the best bang for your buck initially, and then you can fill in the gaps (either building native for other platforms or Web app for your non-primary target).

Just my 2c.

Tagged , ,
Follow

Get every new post delivered to your Inbox.