zach waugh
  • Blog
  • Projects
  • About
zachwaugh

Speed is a feature

July 5, 2010 - 0 Comments - user interface usability

For the next version of Gmail, one of Google’s goals is to get it to load in under a second. They stated that for them, “Speed is a feature”. I couldn’t agree more. It’s something that Google seems to take seriously in most of their applications. Their user interfaces are pretty minimal, but they’re fast. Sure, they could focus on adding other features, improving the design, making it look like a desktop version, but instead they focus on speed. I’m a bit torn here, as I love a beautiful interface. I’ve tried Mobile Me, and it’s really nice looking, has all the little details that Apple gets right, but damn it feels slow after using Gmail. If I had to make a choice, I would choose Gmail every time.

I think that’s the heart of the matter. Speed is a feature that is often overlooked in most applications - both native and web. Everyone tries to build the most beautiful and fancy user interface, but improving speed and responsiveness is one of the best ways to improve the user experience. I think few developers really make it a priority. If your web app is slow, you’ll probably enable gzip, combine and minify JavaScript, reduce HTTP requests, etc. But would you change your interface to make it faster? Would you make it a little less pretty, a little simpler, get rid of some images, use a solid background color instead of a gradient to see an increase in performance? Probably not.

For the next release of your app, I’d suggest try to make increasing speed the top priority. I for one would love to see the release notes for a new version that just said “Improved performance by 2x all around”. I know it’s something I’m going to start focusing on in my apps.

Opening links in background with Cocoa

April 6, 2009 - 0 Comments - cocoa objective-c usability

One of my biggest annoyances with mac software is how it handles opening links. This is usually a disruptive process that requires you to switch from your current task and application to another. Since I use spaces to partition apps (more info), it often results in not only switching apps, but also spaces, which makes it all the more annoying. Now, it makes sense if you click a link, that you want to view that page right away, but usually I’m not opening links to read them now, but to read them soon.

For example, if I’m reading an email that has links, I want to open them as I read it so I don’t forget to look at them, but I don’t want to have to switch applications mid-sentence just to open a url. This is even more prevalent when reading feeds. I use NetNewsWire for my RSS reader, but I don’t use it to actually read the content. I like going to the site. I just use an RSS reader as means to get there more efficiently. So as I go through the links, if there is something interesting, I open the link. When I’ve gone through all the new items, I have everything open in tabs in Firefox. I find it too jarring to open a link, read it, go back to NNW, open a link, read it, etc. NNW handles this with ease by having a “Open links in background” preference. A simple one checkbox option that makes the experience all that more enjoyable and seamless for me.

So, to all developers out there, if your app involves people opening links, please provide this functionality. It’s the attention to detail on these types of user interactions that really make or break an application. And so there’s no excuse, here’s an objective-c method to do it for you:

// Opens a URL in the default browser in background or foreground
- (void)openURL:(NSString *)url inBackground:(BOOL)background
{
  if (background)
  {
    NSArray* urls = [NSArray arrayWithObject:[NSURL URLWithString:url]];
    [[NSWorkspace sharedWorkspace] openURLs:urls withAppBundleIdentifier:nil options:NSWorkspaceLaunchWithoutActivation additionalEventParamDescriptor:nil launchIdentifiers:nil];    
  }
  else
  {
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]];
  }
}

12 lines of code and your app just became 10x more useful to me. While we’re on links and usability. If your app does implement this functionality, make sure to provide some indication that the click actually worked or users will keep clicking the link all the while opening the same page a hundred times in their browser. NetNewsWire handles this by providing a subtle animation and changing the color of the text of the links you opened.

ELSEWHERE...

  • Twitter
  • Github
  • Delicious
  • Flickr
  • Blog RSS feed
  • Email

© 2010 Zach Waugh