The following document was created by a programmer, not a UI designer. It was done without the guide of any Designer or Design Book. Read at your own risk. Any constructive suggestions are welcomed at this pages' discussion. It is understood by constructive feedback, the feedback of the form: “The way you do it is not the proper way because [...] and you should do it this way […] because [...]”. Any other feedback will either discarded or given a much less priority (and chance) to be addressed or used. Finally, the document's intention is not to be an exact representation of the final document produced by Kivio, but a representation of the desired behavior and the expected possibilities for the new 2.x series.
Kivio's support to the keyboard-only work-flow should be of first class. The application should be powerful regardless of the way the user decides to interact with it. In this document such workflow along with the needed commands are proposed so that this can be archived.
Bob is a programmer for The QCompany. He has to document every little detail of his work as a programmer so that those who might occupy his position know exactly what his design does and why. Being a developer, he hates the obsession that the diagram tools have for the aesthetics and the final layout of the document, what he really wants is not to have pixel-perfect control, at least not most of the time, but only describe his diagram and let the program handle the details of the positioning. Because he's a developer and power user, he hates using the mouse; he feels that he's much faster using only the keyboard and that any good diagram application, worth of calling itself diagram application, should allow this kind of interaction while being as least intrusive as possible to the user.
1. Bob has been given the task to document his most recent algorithm. He opens Kivio and select the proper type of diagram that he's about to do:
2. After he selects the Flow chart from the Software Engineering category, Kivio's main window is shown as follows:
3. In order to insert the next block all what Bob has to do is press the Down arrow, a new stencil is inserted (in this case because it is the first one the most used shape is inserted, otherwise the last inserted shape is inserted). The logic behind it is that if the user press a direction that has no stencil then a new stencil is added, otherwise the selected shape is changed to the nearest shape in the pressed direction.
4.Since the shape is already selected, Bob only has to type something for the text to appear inside the selected shape.
5.The next stencil of the diagram is not a “Process” but a “Decision” instead. Bob presses Down, and then Tab, the focus goes immediately to the “Most used stencills” docker.
6.Now that the selected shape is inserted Bob can start writing again the content of the shape.
7.Bob continues to add the other stencils he needs for the diagram.
8.Bob sees that he really dislikes the place of the just inserted stencil, so he selects it and presses Control +Down Arrow, which moves the stencil one “unit” down, aligning it to the other shape.
9.Finally, Bob insert the final stencils. He then realizes that he's missing one remaining path.
10.Bob moves to the “Decision” stencil and then presses Alt +Select shape, when he releases the the Alt key Kivio inserts an arrow from the two selected shapes.
11.Bob finally has finished his very complex diagram and checks the result before printing it.
As can be seen, the final objective of Kivio is to let the user do the diagram and he take care of the details. Note that in the end the user can override Kivio's defaults but, if the defaults are properly chosen, it should be the exception, not the norm. Summary of commands
To insert new stencils. If the direction in which the user presses has no stencils, the program insert a new one and selects it.
If the user has a stencil selected, then the stencil will be erased. Unless it is inserting text, if so, it will just delete the character right to the cursor position.