Michael Gaigg: Über UI/UX Design

7May3

Video: Map App UI Design

Posted by Michael Gaigg

Here is the video from the tech session I held at the Esri DevSummit 2013 in Palm Springs, CA.

The session teaches participants best practices for reviewing, conceptualizing, designing and building user-centered mapping applications in a competitive business environment. Methods, techniques and tools for improving the user experience and designing useful and appealing front-end interfaces will be discussed.

26Apr3

Top 10 Design Influencers

Posted by Michael Gaigg

Design Influencers

Design Influencers

Designing user interfaces isn't about sexy graphics, shiny buttons or slick navigation (alone).

It's about taking care of the influential factors that make or break the success of a web application or website.

It's a delicate balance of user needs and business requirements, deeply understood and carefully melted into a design that is loved by all stakeholders (the end-user included ;) )

The sum of all the design influencers are the constraints that will box your design decisions. That's not a limitation, it's liberation!

The Design Influencers are:

User Needs

Whatever it is that you are planning to build, it needs to be useful to somebody and has to solve a real-world problem. This end-user need is the reason of existence, it's the meaning life.

Context

In which context will your users access the site? Is it through mobile devices on the road? Then a shopping cart will be less important than driving directions or store hours and screen elements need to be more prominent.
Do users typically enter your site through search? Then your landing pages need to convey who you are and what you do because users won't have seen your fancy homepage (and probably never will).

Culture

Even though cultural difference across the globe become really important if you build an international site, I rather mean business or sociological culture, i.e. if you plan on building an intranet site but the company's culture doesn't encourage to report failure or spending time helping other employees, then a forum probably isn't the right choice to offer.

Business Needs

While your client is ideally well informed about their end-user's needs, they also have to run a business, satisfy stakeholders, fulfill legal mandates etc. And that's when compromising your perfect usability is sometimes necessary and important.

Technology

What's the available technology? Very often the vendor or client platform of choice dictates the choice of technology, e.g. a Microsoft shop will prefer .NET and Silverlight (oh, long time I haven't mentioned Silverlight so I mention it again) or Flex.

Market Opportunities

If something isn't viable or possible today that doesn't mean it won't be in a year. So think ahead and design your site accordingly, i.e. extensible, modular, maintainable.
What I've found is that sometimes it's worth including an "upsale" item into your mockups, something that the client hasn't explicitly asked for but may open their eyes and hopefully wallets ;) Mostly you may defer these items to a later phase but it gives everybody a long-term vision and as a side-effect supports designs that are extensible.

Cost

It's been said that anything can be done if you only have enough time and money, but the real world doesn't spin like that. Your design is constrained by a budget - and that's a good thing because it forces you to stay realistic finding the right balance between innovation and familiarity.

Sponsor

If the main sponsor is Esri (my current employer) I better make sure that there is a map on the interface. What sounds like a designer's nightmare is the name of the game.

Lifespan

How long will your design need to stand the test of time? Is it 1 year or 10? A demo doesn't need to be as polished or thought-out as a content-management system that will take over the client's communication platform. It is the classical "let's get it done" versus "let's think about this a last time". I've written a more detailed article about Lifespan as an important Design Decision.

Compliancy

Accessibility is a law and therefore cannot be removed from the equation. Your fancy design elements might just not be (or too expensive to be) compliant with the law. Acquire knowledge about accessibility laws (e.g. section 508 in the US), their implementation specifics and know how that translates into your design.

24Apr2

Touch Event Support for jQuery UI

Posted by Michael Gaigg

Swipe

Swipe

Problem: jQuery UI doesn't support touch gestures

We are customizing a map application with swipe functionality which is based on some legacy code mash-up with dojo and jquery/jquery ui. Everything was nice and dandy until we tried swiping on the iPad for the first time. Bad awakening. jQuery UI user interface library does not support the use of touch events in their widgets and interactions. This means that our mouse event simply don't work on touch devices. One might think the jQuery toolkit would take care of it... but no!

Solution:

Solution A: For every mouse/keyboard event, provide the equivalent touch event: touchstart, touchmove, touchend,...

Solution B: Use a hack called jQuery UI Touch Punch that adds simulated events (that mimic touch events) to your app and respond to the mouse events you already have in your app. It's really simple:

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="http://code.jquery.com/ui/1.8.21/jquery-ui.min.js"></script>
<script src="jquery.ui.touch-punch.js"></script>

Add the jquery and jquery ui libraries (if you don't have them already or if you use older versions) plus the reference to your local copy of the touch-punch file (download the Development version!!)

Solution C: Go to github and get the really nice swipe story map template which works "out of the box" (but didn't satisfy our complex requirements)

19Apr8

Recommended usage of Dojo Topic (Publish/Subscribe)

Posted by Michael Gaigg

Communication between multiple object instances can be implemented using the global messaging mechanism of dojo/topic. It's like a centralized hub for publishing and subscribing to topics that are not bound to a particular object.

While the dojo reference guide documents a good usage example, I believe and strongly encourage you to implement pub/sub with the following signature:

// widget:
require(["dojo/topic"], function(topic){
	topic.publish("/filter/changed", this, { title: "My Blog", author: "Michael Gaigg" });
});
 
// controller:
require(["dojo/topic"], function(topic){
	topic.subscribe("/filter/changed", function (sender, args) {
		console.log("Title: " + args.title + " by " + args.author);
		this.headerWidget.updateTitle(args.title);
	});
});

While the topic.publish allows you to define any combination of parameters I found passing two parameters - sender and args - the most consistent and useful:

  • The first parameter is the sending object, i.e. the widget instance (this) that originates the publish
  • The second parameter is an object literal of arguments

One could use the sender to implement conditions within the subscriber. But the biggest advantage by far is that the signature is always the same and the amount and order of the arguments can be neglected. The code becomes more readable and easier to maintain.

One more note: Any widget can publish topics but only the controller should subscribe to these topics and then redirect actions back to the appropriate widgets, that is without introducing widget-specific logic at the controller level.

16Apr1

T-Shirt: Trust me I’m a Designer

Posted by Michael Gaigg

Here is a must-have for all design geeks out there: Trust me I'm a Designer Tee Shirt!

And believe me, it's not only a vision test, it's a test in your faith as being a designer :)

Btw. I'm a designer and I approve this message.

Trust me I'm a Designer Tee Shirt

Trust me I'm a Designer Tee Shirt

16Apr1

Follow-up FAQ from my Talk

Posted by Michael Gaigg

I've received many questions after my talk about Web Mapping Application Interface Design – Best Practices and Tools at the Esri DevSummit in Palm Springs.

Following I try to answer them a little more in depth:

I'm a one-man-show, what can I do?

It's very common that one doesn't have the means to build up a UI/UX team that covers all skill sets needed for a comprehensive coverage of all design methods. In that case I recommend focusing on your strengths (what a surprise!) and trying to grow into the area you see the highest chances for adaption and integration.
Generally wireframing is a good choice because it's easy to learn, cheap to implement and gain high interest, it's also a fundamental step in any design.
Rapid prototyping is really important too. Get to know JavaScript frameworks like jQuery and dojo, familiarize yourself with CSS and CSS preprocessors.

When is Community Maps going to go live?

Community Maps is currently in private beta, planned to be released this month (April 2013). We are working on improving the registration pages next, then potentially expanding to other programs (Community TIGER, Community Hydro, ...)

Why should I use Balsamiq for wireframing

There are plenty of wireframing tools out there - you can even use PowerPoint (download my free PowerPoint stencils) - Balsamiq just happens to be very cost-effective (US 79.- per license), easy to handle and with a boat load of controls that can even be extended (download free map controls).
I love Balsamiq for other reasons as well, see some tips and tricks that make my designer life easier.

Why not use MS SketchFlow?

Besides some pros and cons I think the biggest no-no for using SketchFlow is the tight integration with MS Blend and therefore MS Visual Studio. A designer doesn't (and if he does, he shouldn't) think in development details and best practices, code re-usability or testing. Read more of my thoughts on that subject on MS Sketchflow meets Sketchables.

Why are 3 wireframe iterations enough?

Usually I recommend 2 rounds of wireframes (more rounds are ok during proposals). If you still cannot move on after 3 rounds of wireframes this is typically a good indicator that your project has some sort of underlying problem that you should detect and address right now.
Typical problem areas include:

  • No real user need
  • Too many cooks in the kitchen
  • Poorly defined requirements
  • Undecided project manager
  • Problematic client
  • Missing domain knowledge
  • Bad designer
Filed under: Conclusions 1 Comment
27Mar2

Web Mapping Application Interface Design – Best Practices and Tools

Posted by Michael Gaigg

These are my slides from the tech session held at the Esri DevSummit 2013 in Palm Springs, CA.

The session teaches participants best practices for reviewing, conceptualizing, designing and building user-centered mapping applications in a competitive business environment. Methods, techniques and tools for improving the user experience and designing useful and appealing front-end interfaces will be discussed.

20Mar0

Innovative Interfaces: Future of Farming

Posted by Michael Gaigg

John Deere has done a very nice job with a video called "Farm Forward – Future of Farming". The subject is directly related to design work I'm doing right now and it's fascinating to see that - futuristic features aside - most of the capabilities like combining weather data with GIS and field scouting exist already. Love it!

4Mar0

Using REPLACE in a SQL UPDATE

Posted by Michael Gaigg

When moving domains there will be a need to replace old url's and other strings to reflect the new names.

In my case the images of my blog articles were still pointing to the old domain which didn't physically exist anymore. Result: broken images and links.

Quick Solution

A quick SQL replace does the trick:

UPDATE blog_posts SET post_content = REPLACE(post_content, 'old-server.com', 'new-server.com') WHERE post_content LIKE '%old-server.com%'

This SQL statement is perfect for updating wordpress blogs that moved to a different domain/host.

Easy and efficient :)

28Jan0

Redesigning our internal Team Site

Posted by Michael Gaigg

Paper sketch draft

Paper sketch draft

I could have titled this post "The importance of sketching" or "Paper and pencil are still hip". The truth is, I didn't even realize about the fact that I do a lot of sketching on paper, as a matter of fact I just recovered my beautiful drawing from going into the shredder. I think the beauty of sketching on paper is that the ink just flows. Sometimes you don't even know where it will lead you when you start. It keeps you minimalistic, not too much detail can be crafted on a tiny piece of paper (at least I can't).

Graphical Design

Graphical Design

Once I had the draft in hands, it was just a matter of whipping the right amount of bootstrap with some custom HTML and funky JavaScript, voila, our internal team site came to life... So you could say that prototyping can be done in HTML without the need for wireframes, I still doubt that. Without at least the genius idea on paper I wouldn't be able to code as efficiently as I did.

The coding part was only the cherry on the pie, a quick logo, a menu, a hero unit, some blocks and fancy graphics, tadaaaaa. I used PHP to create a 'controller' with content being included on the fly. Yes, good old content, still working on that piece, but no worries, I got it under control ;)

How do you design? Do you sketch/wireframe? Or straight to code?

Page 2 of 2312345...1020...Last »