7

Here's a link to their demo. Basically, it's an online tool that implements a lot of the visio functionality.

I'm building an app that would require similar type of user interaction, dropping, moving, editing, resizing objects, interacting with grids and guides, etc.

Since the project is for my own learning purposes, I was wondering what are some of the things I should focus on or learn to be able to develop such high quality interfaces

Cheers

New Alexandria
  • 6,951
  • 4
  • 57
  • 77
dassouki
  • 6,286
  • 7
  • 51
  • 81

3 Answers3

6

There's draw.io, a very similar tool, but with the source on github.

Frodo Baggins
  • 8,290
  • 6
  • 45
  • 55
Geff Attree
  • 183
  • 3
  • 8
2

To build such a rich user interface is a big task. Which is why there are lots of frameworks and libraries which have already developed rich user interface stuff such as:

  • Sproutcore
  • Cappuccino
  • ExtJS
  • Dojo
  • jQuery UI

Sproutcore and Cappuccino are for developing desktop style applications for the web and include very good user interface components. As well as maintaing application states and data models. ExtJS has a lot of these features and a very nice UI toolkit, as does Dojo.

Lucidchart I notice uses the Canvas drawing API as well so thats something you would need to look into for shape manipulation and creating flexible connections. Mozilla Developer Center has some good stuff on the canvas API.

limptwiglet
  • 303
  • 1
  • 5
1

I would start off by taking a look at the Raphael library.

It allows you to write pretty simple Javascript code to draw graphic elements in the browser, including pretty straightforward animations and draggable/clickable interfaces.

In all honesty, it's not going to be quick and easy to write something as complex as the site you linked to, but Raphael is the quickest way to get started with the basics.

And best of all, Raphael is even compatible with older versions of IE, so you don't have to worry about only being able to support the latest browsers (though of course you may want to do other stuff that does need other new features).

Hope that helps.

Spudley
  • 166,037
  • 39
  • 233
  • 307