Connect the Dots with OmniGraffle
Given the canonical exchange rate of a picture for a thousand words, sooner or later you’re going to need to draw diagrams. OmniGraffle, from The Omni Group (the same folks who brought you OmniWeb, Adam’s favorite Web browser), is a wonderful application that draws diagrams with easy grace.
OmniGraffle has a venerable history. Conceptually, it’s modeled on a NeXT-based application called Diagram! (a product of Lighthouse Design, a company later swallowed and, in typical fashion, subsequently scuttled by Sun), which goes back to the early 1990s and used to cost $500. The price has come down a lot since then; in fact, for many users, OmniGraffle is free, because for the past four-odd years it has come bundled with certain higher-end Macs. Meanwhile, OmniGraffle has had lots of time to evolve; and that evolution, as a result of the generous, thoughtful, and innovative programming practices at The Omni Group, has yielded stunning results.
A diagram is like a drawing, but it consists primarily of shapes and smart connectors. A shape is just that: a shape. It could be a geometric shape, it could be drawn freehand, it could have an image inside it, it could have color and a shadow and so forth. A smart connector is basically a line. It could have an arrow on one or both ends, it could have thickness, it could have a label. But the important thing is that it should be possible to connect two shapes with a smart connector and have the connector "stick" to both shapes even when, in the course of developing the drawing, the shapes are repositioned.
So a diagramming program is a kind of drawing program. And there is a certain protocol for how drawing programs should work; a program that strayed from the accepted conventions would be difficult to use, and you’d think there would be little room for improvement. Nevertheless, OmniGraffle isn’t just an acceptable drawing program, or even a good drawing program; it’s a fantastic drawing program. I would be unable to convey in words how simple and clear it is to work in OmniGraffle. Everything about it is easy and delightful: the way a shape highlights as you approach it with one end of a smart connector, the way grouping of shapes is indicated, the way you switch between tools, the way the inspector windows are organized. Drawing a diagram with OmniGraffle is as easy as breathing; everything just works the way it should.
I’ll just give a couple of examples of some nice touches that I particularly appreciate. A diagram isn’t just any kind of drawing; it needs a certain uniformity. So, as you drag a shape, little indicators appear, telling you when the shape is aligned with another shape or when it’s the same distance from shape B as shape B is from shape A. There are also numerous ways of making one shape look like another: not only can you copy and paste formatting, but a style summary inspector lets you drag just the desired attributes of a shape (such as its color or its stroke) to another shape. Furthermore, you can easily select just shapes that have certain attributes in common, so it is easy to (say) make every orange shape green.
Another remarkable aspect of OmniGraffle is how flexible it is. All sorts of things that you wouldn’t have thought of as diagrams can be opened as OmniGraffle documents. OmniOutliner outlines, for example, opens with an intelligent initial layout, the hierarchy being represented by connection lines. (Indeed, an OmniGraffle document has an outline view, which can be a good place to work sometimes, as when creating or rearranging a big structure.) An Xcode project opens as a chart of its classes and methods. And OmniGraffle is heavily scriptable, so in theory all sorts of custom automated diagram import and export should be possible.
On the downside, OmniGraffle’s online help is infuriating: it’s a Help Viewer document consisting of numerous pages, but there’s no navigation assistance (a page has no links telling your where you are or letting you move about the hierarchy of pages), and hyperlinks all lead, not to the relevant page, but to a search page. It also isn’t difficult to think of missing features in OmniGraffle. For example, it has no true named styles (such that I might change the color of "MyStyle" from red to blue and have all shapes with that style change from red to blue automatically – only the increasingly moribund AppleWorks implements this correctly).
Also, in OmniGraffle, the "intelligence" of objects is not all that it might be: for example, connection lines do nothing to avoid overlapping with shapes, and labels on connection lines do nothing to modify their orientation as the line moves. Contrast this with the obscure but very powerful programmable "intelligence" of objects in ConceptDraw, which I reviewed several years ago in TidBITS. If you don’t need that sort of power feature, however, OmniGraffle is probably a better choice than ConceptDraw: OmniGraffle is cheaper, it feels like pure Cocoa (not a Windows port), it’s fun and easy to use, and it does exactly what it’s supposed to do.
OmniGraffle costs $80, or $150 for a Pro version that adds features such as tables (matrixes) of shapes, Visio import/export, shape notes, and multi-page documents. A temporary trial license is available. OmniGraffle requires Mac OS X 10.3.9 or later, and is a universal binary for you early Intel Mac adopters.