Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>For recent readers, as of Jan 2013, I evaluated:</p> <ul> <li>Kinetic</li> <li>Fabric</li> <li>Paper</li> <li>Easel</li> </ul> <p>By "evaluated", I did more than just read the docs; I created a prototype app.</p> <p>I started with Fabric because it seemed to have the largest community and thought that it would be my solution. But, I gave up on Fabric for the following reasons:</p> <ul> <li>weird and undocumented API inconsistencies that burned a lot of my time unnecessarily.</li> <li>inconsistent pointer event support. Specifically, Fabric does not consider a "Path" to be a true shape object that is selectable and observable. This did not meet my needs since interactive Paths are a major requirement of my app.</li> <li>behind the scenes additions of translations to the Canvas to position objects. For me, Fabric tries to be too clever in this regard without being clear to the developer what it's doing.</li> <li>overly strong opinion on how move, resize and rotate interactivity works. In many ways, it's great to have this functionality built into the framework but, in my case, I didn't agree with the way it was implemented which meant essentially having to reimplement it myself anyway.</li> <li>sparse documentation - lot's of those cases where the documentation of a method is of the form: "setX(Y) - set's the X to Y" :-)</li> </ul> <p>I took a look at Paper and didn't get too far. It seemed overly obtuse to me and also falls between too stools IMO - it's too much of a visualization library to be a simple object model for Canvas but it's not enough of a visualization library to compete with D3. Plus, the documentation again was not particularly accessible.</p> <p>I think Easel probably makes a lot of sense if you have a Flash/ActionScript background but I do not. Plus, it seemed overly game-focused for my requirements. The nail in the coffin was again documentation - not enough and presented in non-standard format.</p> <p>So, I ended up going with Kinetic because:</p> <ul> <li>really rich and clear tutorials and examples</li> <li>API functions do what they're called and are largely guessable - faster productivity, shallower learning curve</li> <li>is reasonably clear about what it does do and what it doesn't - it's not as rich as some of the others but that's a benefit; it does fewer things but does them better</li> <li>Paths are first-class citizen Shapes, like any other Shape, which was essential for my requirements.</li> </ul> <p>Kinetic is not perfect by any means and there have been a few times when I've had to dive deep into the source code to work out what's actually going on under the covers. Plus, I miss the SVG parsing and output of Fabric.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload