Monodraw: Progress Update #1. 05 Nov 2014 by Milen. It is finally time for our first Monodraw beta progress update. It has taken a bit longer than I expected but we have made some significant progress and more importantly, completed some essential improvements to how the app works. Monodraw also marks the first document-based app that I have made, which is something I had on my todo list for a while. The canvas itself is Core Animation-based (via layer-backed views) which significantly improves performance and makes certain geometry-related operations trivial. Monodraw allows you to easily create text-based art (like diagrams, layouts, flow charts) and visually represent algorithms, data structures, binary formats and more. Because it's all just text, it can be easily embedded almost anywhere. Monodraw is the Visio of ASCII art free download - Software reviews, downloads, news, free trials, freeware and full commercial software - Downloadcrew Monodraw is the Visio of ASCII art 05 March 2015, Mike Williams At first glance, Monodraw’s first public beta looks much like any other OS X diagramming tool.
It is finally time for our first Monodraw beta progress update. It has taken a bit longer than I expected but we have made some significant progress and more importantly, completed some essential improvements to how the app works.
Before we go any further, I want to set out what you can expect from us when it comes to Monodraw's development. My mission is to be completely open about what's happening behind the scenes, what work is being done and what our plans are. It is my intention to provide regular updates on our blog so that you are not left in the dark, wondering what is happening – if you don't see any updates for a while, it probably means we are busy working and there is nothing that we can announce just yet. Always feel free to send me an email or just tweet @milend.
The one thing I can promise you is the truth – no corporate or marketing speak. Our customers deserve to be treated with respect and honesty.
Next up, I want to explain why it has taken longer than expected to provide the first status update. The aim of the beta program is to release a build of the app that is not quite fully featured or polished but provides a solid foundation to build on. After the Monodraw reveal, we want back to drawing board and noticed two important shortcomings:
I came to the realisation that the tool was fighting you rather than helping you – exactly the opposite of what was expected. Tools should be empowering and allow you to easily create rather than forcing you to express yourself in their 'language' (i.e., the abstractions they provide).
This meant I had to make two major changes to the fundamental way Monodraw worked – introduce dynamic positioning and fully editable shapes. As the changes affected the foundations of Monodraw, I had to refactor the affected parts so that everything is nicely designed and fits together correctly. While refactoring does take longer, the sooner architectural changes are made the better – you end up with a better maintainable codebase (so easier to improve in the future) and the code should have less bugs. It's a win-win for both developers and users.
Dynamic positioning is a very powerful concept that can be used to express the spatial relationship between shapes, so that when you move a single shape, all related shapes would automatically move with it. You might be familiar with the concept of anchor points where you can have lines that are attached to other shapes. We have taken the idea further and every shape's position is completely dynamic and attachable to any anchor point – you can create arbitrarily long chains.
Let's take a look at how it works for any rectangular shape (rectangle, text field and surface). The position of such shapes is defined by three properties: a dynamic point (which can be attached to any anchor point), a size and a corner position (e.g., top-left). For example, you can express the following relationship: the top-right corner of a rectangle of size 10 by 5 is attached to the start point of a particular line. There are no limits of the complexity of those relationships, they can span multiple shapes, e.g., you can attach a shape to another shape which in turn is attached to yet another one.
While dynamic positioning provides you with a lot of power to express the spatial relationship between shapes, it is limited by what anchor points you can attach to. For a rectangle, we provide 17 predefined anchor points. For lines, the start point, end point and any midpoints are all anchors, in addition to special points that lie on the segments themselves (orthogonal segments get 3 anchor points while step segments get one).
But any predefined anchor points will never be enough to handle every case out there. That's why I have added support for custom anchor points and you can position them anywhere you want. Making a circuit diagram with an arbitrary number of inputs and outputs becomes a breeze.
When creating diagrams, lines commonly have labels to clarify their meaning, so it is important for Monodraw to be able to cater for that use case. When it comes to the labels themselves, the question of layout arises immediately – how does the line decide where the label would appear? What line sweep would be used? What if the user wants fine-grained control? The common answer to these questions has usually been: the label decides and if the user is unhappy, they can create a separate label and position it manually. Obviously, every time the line is moved, the user would have to re-adjust the label's position again.
Monodraw's philosophy is that the user should be in full control. So how does one create a line label? Remember that each line provides anchor points along the segments and that text fields are dynamically positioned. When you put the two together, a line label is just a text field attached to one of those anchor points! One of the major benefits of this approach is that because the label is just a normal text field, you get full control over how the text is laid out - line sweep, text position, alignment, everything. Furthermore, any shape can become a line segment label – it just needs to be attached to the segment anchor point.
As making labels is a very common operation, it can be easily accessed via a contextual menu.
Every time we used Monodraw, we were continually annoyed by the inability to be able to directly edit the characters of all the shapes. While the surface shape gives you an empty canvas, lines, rects and text fields were not fully editable which lead to a lot of frustration and having to use tedious workarounds.
No more of that – all shapes are now fully editable. The app also tries to express any changes you make in a way that preserves their meaning. For example, if you edit the border of a rectangle and if you resize it, those changes will be expressed as 'set character X along the bottom border'.
In addition, each shape supports 'smart points' which are now highlighted in red during editing. The corners of a rectangle and the endpoints of a line are such points – when edited, they will be stored in a special way and will preserve their characters during any changes to the shapes themselves.
I have also made some smaller improvements along the way, namely:
While we are getting closer to the beta, there are still quite a few bits of work left. We have already decided to cut back on some of the features that would have been included, so that you can get your hands on the app sooner – I will provide further details in due course. The next area of focus would be the inspector / assistant. It would mainly involve interface adjustments but also changes which would provide better customisation of the existing shapes. As usual, we will provide an update on our blog, so make sure to subscribe in your favourite RSS reader or just follow @Monodraw.
Have you already reserved your place in the beta program? If not, do it now!
At first glance, Monodraw looks much like any other diagramming tool. Choose from various themed palettes, drag and drop shapes around on the page, add captions, tweak colours, and build some great-looking diagrams, flowcharts, mind maps and more.
But there is one very, very important difference. Monodraw does this in text, making it probably the most sophisticated ASCII art editor in all of computing history.
As you might expect, this approach does have some, well, weaknesses. You can add shadows to objects, say, or use the bucket tool to fill them, but these effects are created with your preferred characters, rather than solid colour.
But at the same time, Monodraw isn't lacking in functionality. You can customise shapes, tweak their borders, shadows or line styles, group them for easier management, position them precisely with alignment guides, connect lines at custom attachment points, then have them automatically reposition as you move a shape around.
This isn't just a joke, either. As the diagram you're creating is plain text, you'll be able to embed it just about anywhere, no image support required.
Developer Helftone is offering a 40% discount ($29.99 instead of $49.99) if you purchase the product before the end of the beta.
Does the world really need ASCII art diagrams? We suspect not, but if you do then Monodraw is probably as good as the genre will ever get.