Prototyping with Omnigraffle: show/hide annotations

You’re reading an article in the Fuzzy Math design series. These articles talk about our practice: why we do what we do, and how we do it.

« previous article: Fuzzy Math Prototypes

We use Omnigraffle Pro to generate prototypes and wireframes from one source document. It allows us to link elements (buttons, page regions, etc.) to different pages within the same document, or to run scripts. We can then export a PDF or HTML version of our static wireframes into a clickable prototype easily.

Clickable prototypes

Here’s how that works:

1. Select an element on the canvas. In this case, it’s a tab that is kept on a shared layer.

Selecting the ‘Page 1′ tab in the header

2. Open the i inspect menu, choose the properties panel and the actions tab within that panel.

Hold Cmd+2 and then click the blue circle with the arrow in it to see this menu

3. Now we’re cooking with gas! You can choose from all kinds of things to happen when that object is clicked.

Choose ‘jumps elsewhere’ to simulate page to page navigation.

4. Where’s elsewhere? We’ll choose a specific canvas to target:

You can tell Omnigraffle to navigate to another canvas, zoom, highlight or center on the current canvas.

Okay, that’s it. On every page that has that shared layer, you’ve made persistent navigation.

Now what? Preparing the prototype

Now the problem is what to do with all the annotations, text commentary, and page backgrounds that are included with a traditional wireframes, but are visual noise in your prototype. Turning them off on each page can be a real drag, and no one gets a good feel for app flow with them cluttering the view.

Our solution is fairly simple. First, each canvas has two layers. A ‘Notes’ layer specific to the canvas, and a shared ‘METADATA’ layer displaying page name, number, revision, and other information.

Layers in Omnigraffle file

Layers within an Omnigraffle canvas

All the layers in our Omnigraffle canvas.

We make another canvas (or page) and put some buttons on it. On these buttons, we use the ‘Runs a script’ option and paste in some AppleScript:

Now, clicking ‘Check syntax’ and ‘Run script’ executes that AppleScript. We don’t even have to export this page to make it work. Here’s the AS to turn on all the Notes layers and page backgrounds, for example:

tell application “OmniGraffle Professional 5″
set theDocument to front document
set canvasCount to count of canvases of theDocument

repeat with canvasNumber from 1 to canvasCount
set oCanvas to canvas canvasNumber of theDocument
try
set lyrNotes to layer “Notes” of oCanvas
set blnVisible to visible of lyrNotes
set visible of lyrNotes to true
end try
try
set lyrNotes to layer “METADATA + Brand background” of oCanvas
set blnVisible to visible of lyrNotes
set visible of lyrNotes to true
end try
end repeat
end tell

Here’s the file:

Omnigraffle icon fuzzy-math-template-example-1.graffle

Enjoy! Comments and suggestions are welcome, as always.

Popularity: 23% [?]

This entry was posted in Featured and tagged , , , . Bookmark the permalink.

7 Responses to Prototyping with Omnigraffle: show/hide annotations

  1. Pingback: Wireframes Magazine » Show/Hide Annotations Omnigraffle Script

  2. Pingback: User Experience, Usability and Design links for March 11th | BlobFisk.com

  3. Jason, this is really nifty, realizing how much effort I went to, to do clean up’s before. Thank you! – Andrew

  4. Jason says:

    Thanks Andrew! Hopefully we’ll get some more scripts like this up soon.

  5. bm says:

    Just a tip for those who don’t know Applescript that well. If you cut & paste the script from the web site, be sure to replace the smart quotes in the entire script with straight quotes.

    For example, AppleScript will choke on the first line…

    tell application “Omnigraffle Professional 5″

    It’s an easy fix, and the script works perfectly. Thanks JK for the awesomeness.

  6. Pingback: Prototyping für Small Devices auf verschiedenen Leveln : Seminare: Designing Interaction for Small Devices

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>