Tag Archives: apps

Graphviz: There’s an app for that!

The iPhone and the iPad touch have, admittedly, proven to be amusing. With the release of Instaviz, an implementation of Graphviz, it turns out that they can really be useful. At $9.99, Instaviz is one of the more expensive applications, but it is more than worth it. Graphs are created by tracing out shapes and connecting them by tracing out a line between them. Nodes of various shapes can be drawn, just as in the dot language. The app is remarkably good at determining what shape the user intends to draw, but will sometimes interpret what is intended to be a circle or ellipse as a diamond or record style. Node label, font, color, border, thickness, corner style, and fill color can be adjusted for each node. Misinterpretation of the the intended shape can be remedied using the formatting tools. Rendering of the graphs is animated (fun to watch!). Selecting a node by tapping it and shaking the iPod Touch/iPhone will delete a node. Graphs can be exported by email in a variety of formats, including Graphviz GV, PNG, PDF, Visio VDX, and—according to the documentation on the web site—can be imported from the Internet, and  exported to Mac and Windows machines using the Instavue tool.

Drawing graphs is easier than doing so in OmniGraffle—which uses Graphviz to lay out directed graphs—or coding in dot, and I use it like a notepad for sketching graphs while writing or brainstorming using pen and paper or my laptop. It’s easy enough to draw, format, and revise graphs while standing on a crowded NYC subway, the ultimate test of usability for an iPod Touch/iPhone app.

Here’s the .gv code and the graph it generated, which I exported by email. Multiple formats can be emailed at once; the graph and code below were sent in a single email.

digraph "" {
graph [layout=dot, IVFileName="Graph", bb="0 0 82 260", IVLastNodeNumber=6, IVLastNodeChangeForDiamond="\"style\" = \"rounded\"; ", IVScale="1.344304", IVContentOffset="0.000000,0.000000"];
node [label="\N"];
graph [IVFileName="Graph 2"];
"EF25C82B-1C2D-4522-9C04-44398A56A51C" [label=1, IVPosition="20,159", shape=circle];
"49973C53-DFEE-4B54-B3B1-4B0CC2FCF66B" [label=3, IVPosition="112,-27", shape=ellipse];
"E4C0BEAD-41FE-44E5-9EAF-19E4A46896F9" [label=4, IVPosition="223,7", shape=ellipse];
"2067E4D4-502B-426C-85F7-1F26B8193D2B" [label=6, IVPosition="117,46", shape=ellipse];
"E4C0BEAD-41FE-44E5-9EAF-19E4A46896F9" -> "EF25C82B-1C2D-4522-9C04-44398A56A51C";
"49973C53-DFEE-4B54-B3B1-4B0CC2FCF66B" -> "EF25C82B-1C2D-4522-9C04-44398A56A51C";
"49973C53-DFEE-4B54-B3B1-4B0CC2FCF66B" -> "E4C0BEAD-41FE-44E5-9EAF-19E4A46896F9";
"2067E4D4-502B-426C-85F7-1F26B8193D2B" -> "49973C53-DFEE-4B54-B3B1-4B0CC2FCF66B";