Tag User Interface

Tab bar or no Tab bar?

Interesting writeup from Justin Williams about the use of Tab Bars in iPhone development. One of his big gripes is related to the space the tabbar uses:

When I made the decision, my thinking was that the application had four separate features, so it only made sense to separate them using the tab bar. What I found as I got further into the development of the application was that the bottom tab bar was incredibly limiting for where to place extra controls.

The main problem here is that by default a Tab Bar is visible in all views of the application. I much prefer Tweetie‘s implementation, where the tab bar is only visible on list views, and pushed away on the detail views. Of course, this layout is actively discouraged by Apple, who recommend you put your navigation controller *inside* each tab bar. They do it the opposite way themselves in itunes tho.

Also, the interaction allowed by the Tab bar is really limited. You cannot easily disable and enable a tab, for instance. Still, I believe this way of presenting data has merit, specially in giving non-technical users a clear overview of the main parts of your application.

*update* As Ross Boucher points out you can also hide the Tab Bar by setting the “hidesBottomBarWhenPushed” property on your controllers. An important gotcha with this is to make sure you only set it on the first level controllers.

Balsamiq Mockups look awesome.

Go check out their screencast. I think $79 is a bit pricey for what it is tho.

An awesome error page

Wulffmorgenthaler is one of the web comics I follow religiously through my feed reader. The other day their comic didn’t want to load. I tried following the link to their page, only to be presented with One of the coolest error pages I’ve seen. Of course, we all strive to keep our sites up 24/7. Still I think it is a sign of greatness to be able to put a smile on the lips of your readers even when your service your service is down.

Adobe UI Gripes

Do not meddle in the affairs of designers, for they are subtle and quick to anger. Adobe has been getting a lot of shit lately, first their installers, and now this.

Markdown is different

David Wheeler says

Lately I’ve been fiddling a bit with Markdown, John Gruber’s minimalist plain text markup syntax. I’ve become more and more attracted to Markdown after I’ve had to spend some time using Trac and, to a lesser degree, Twiki and MediaWiki. The plain-text markup syntax in these projects is…how shall I put this?… gawdawful

This is a big part of the reason why we chose Markdown along with Textile as the supported Wiki markup languages for MojoMojo. Having edited some wikipedia-pages, as well as Trac , while we were using that for the catalyst dev wiki, I totally agree. Their markup language makes me want to hurl.

Problems with star ratings

Steven Frank points to some of the issues with star ratings. There are others, but in general this is part of why we decided to go another way with iusethis.

Adding smooth keyboard navigation to your site using javascript and jQuery.

One of Arne’s long-standing wishes for our video bookmarking site iwatchthis.com has been proper keyboard navigation. Today I finally found some tuits, and Just Fucking Did It.

Turns out that with a couple of javascript libraries, it was surprisingly easy. Step one was the keyboard shortcuts library, which let you hook up to keyboard input in this simple fashion:

   shortcut('up',function() {
        alert('Lucy in the sky with diamonds');
   })

However, rather than bore you further you with Beatles lyrics, I hooked it up to the excellent scrollTo jQuery extension, which lets you smoothly scroll to any anchor in in the page (I added anchors into the video item for convenience):

 
    $.scrollTo('#item_'+num, 313); // Donald number of miliseconds

I also used the URLs from the pager to allow left and right arrows to go to the next/previous page, if those links exist. (This is a simple matter of setting window.location).

shortcut("left",function() {
    var elem=$('.pager .prev');
    if (elem[0]) { window.location=elem.attr('href'); }
});

That was easy, but one issue still remained. Whenever you click inside a flash area (which most videos on iwatchthis are), flash cowardly steals the focus disabling our nice keyboard navigation, however I found a way to work around this:

$('embed').focus(function(){
    window.setTimeout(function() {$('#item_1')[0].focus(); }, 500);
    
})

Allows us to pilfer back the keyboard focus from the flash widgets shortly after giving it up. Note that in my tests, setting the focus on the document body rather than a link did not work. Also, it seems that this event does not trigger on safari. :/
The good thing about unobtrusive javascript like this tho, is that is downgrades nicely, rather than leaving your visitor with an unusable site. Too bad we can’t do much about the flash requirement.

Copyright © marcus ramberg
nordaaker

Built on Notes Blog Core
Powered by WordPress