Pour les lecteurs récents, en janvier 2013, j'ai évalué:
- Cinétique
- en tissu
- Papier
- Chevalet
Par «évalué», j'ai fait plus que simplement lire la documentation; J'ai créé une application prototype.
J'ai commencé avec Fabric car il semblait avoir la plus grande communauté et je pensais que ce serait ma solution. Mais j'ai abandonné Fabric pour les raisons suivantes:
- incohérences d'API étranges et non documentées qui ont brûlé beaucoup de temps inutilement.
- prise en charge des événements de pointeur incohérente. Plus précisément, Fabric ne considère pas un "Chemin" comme un véritable objet de forme sélectionnable et observable. Cela ne répondait pas à mes besoins car les chemins interactifs sont une exigence majeure de mon application.
- dans les coulisses des ajouts de traductions au canevas pour positionner les objets. Pour moi, Fabric essaie d'être trop intelligent à cet égard sans être clair pour le développeur ce qu'il fait.
- opinion trop forte sur le fonctionnement de l'interactivité de déplacement, de redimensionnement et de rotation. À bien des égards, c'est formidable d'avoir cette fonctionnalité intégrée dans le cadre mais, dans mon cas, je n'étais pas d'accord avec la façon dont elle a été mise en œuvre, ce qui impliquait essentiellement de devoir la réimplémenter moi-même de toute façon.
- documentation clairsemée - beaucoup de cas où la documentation d'une méthode est de la forme: "setX (Y) - met le X à Y" :-)
J'ai jeté un coup d'œil à Paper et je ne suis pas allé trop loin. Cela m'a semblé trop obtus et se situe également entre trop tabourets IMO - c'est trop une bibliothèque de visualisation pour être un simple modèle d'objet pour Canvas mais ce n'est pas assez une bibliothèque de visualisation pour rivaliser avec D3. De plus, la documentation n'était pas particulièrement accessible.
Je pense que Easel a probablement beaucoup de sens si vous avez un arrière-plan Flash / ActionScript, mais pas moi. De plus, cela semblait trop axé sur le jeu pour mes besoins. Le clou dans le cercueil était à nouveau de la documentation - pas assez et présenté dans un format non standard.
Donc, j'ai fini par choisir Kinetic parce que:
- tutoriels et exemples vraiment riches et clairs
- Les fonctions de l'API font ce qu'elles appellent et sont largement devinables - productivité plus rapide, courbe d'apprentissage moins profonde
- est raisonnablement clair sur ce qu'il fait et ce qu'il ne fait pas - ce n'est pas aussi riche que certains des autres, mais c'est un avantage; il fait moins de choses mais les fait mieux
- Les chemins sont des formes citoyennes de premier ordre, comme toute autre forme, ce qui était essentiel pour mes besoins.
Kinetic n'est en aucun cas parfait et il y a eu quelques fois où j'ai dû plonger profondément dans le code source pour comprendre ce qui se passait réellement sous les couvertures. De plus, l'analyse et la sortie SVG de Fabric me manquent.