Very nicely done! But I wish you could have watched over my shoulder as I bumbled around at the UI. Since I bought the export function and therefore own you as a developer to execute my every whim delivered as free updates until eternity ends[1]…

• If you can attach text to a bezier connection, I couldn't make it happen. I want this. Code faster, sleep less.[2]

• I kept trying to move objects a little bit without the double pump of first selecting. This makes tiny fly dropping lines which have to be undone or deleted. I think a short, brief gesture from the center of an object might be safely interpreted as a drag. You must already be deciding if it is a connection or a line. What's one more logic branch?[3]

• I'd like to select several objects of a class and have the option to "make same shape" in order to tidy up. Say, grab 3 rectangles and make them the same dimensions. Easy context menu item, but you have to figure out how to select 3 arbitrary rectangles first. Perhaps in select mode a brief touch adds or removes from the set of selected objects?

• For reshaping rectangles and ovals, I think a horizontal or vertical pinch should change just that dimension, diagonal can still resize preserving aspect ratio. This gives a natural way to change aspect ratio without all the mode-i-ness of the vertex.

• I find myself wanting to connect more than 4 things to a rectangle, I want them to come in at right angles to a side, but not overlap their lines on the way in. That will take a day of thinking to imagine a solution to rendering that. Having them spaced pleasingly, near the center of the side, in an order to minimize crossovers would be lovely. Good luck.

• I keep making fly specks on my drawing by touching the surface. I want that not to happen, but I suppose I might eventually want to make a tiny line too. Please resolve my ambiguous actions like an oracle. I expect this to be done so well I never realize you are doing it.

• Xcode-esque snap to other stuff on the page would be nice, particularly snapping to "things I am connected to" would help keep those horizontal and vertical lines tidy.

• I think adding "shake to undo" would be nice. That undo button is so far up in the corner, it feels like a context switch to me to go hit it, while a shake is just part of my flow. How strange is that?

Well that should keep you busy until December 1st. I'll get back to you with my next set of demands then.

EOM

[1] I kid, But I don't get to be the "user" end of these very often and I'm going all out.

[2] The Omni Group NSBezierPath extensions might be helpful here, they have a getPositionForPoint: method that tells how far along the path a point is, and a corresponding getPointForPosition: so you could glue the text to a relative position along the curve. They also have hit testing for NSBezierPath, but you already crossed that bridge. https://github.com/omnigroup/OmniGroup/blob/master/Framework... [4]

[3] Plus a time machine so you can draw the feedback as a line or drag without knowing if it is going to be short or brief. Your problem. Not mine.

[4] You realize if you give me this I am going to come back and ask for the ability to drag the text along the bezier curve, right? Best plan for that from the start.