
Ces derniers temps j’ai recherché un framework JavaScript qui réponde aux critères suivants :
- facile à apprendre,
- simplifiant le développement d’interface utilisateur (le plus important),
- simple à intégrer dans une chaine de développement
- permettant d’utiliser d’autre bibliothèque JavaScript
- un aide complète
- une communauté
- Licence permissive pour intégration dans des produits commerciaux
- intégrables
- supportant d’autres bibliothèques (ex :jQuery)
- fonctionnant sur un grand nombre de navigateurs (pas que Chrome ! )
Dans la liste des frameworks assez connue, il y a Polymer, React, Angular et Angular 2. Mais en général ces derniers frameworks ne sont pas si faciles à appréhender et demandent à apprendre un nouveau langage Typescript.
Angular utilise JavaScript, mais Google veut le remplacer par Angular 2, qui lui utilise TypeScript avec beaucoup d’annotations (trop à mon gout). C’est une vraie usine à gaz !
Dans ma recherche je suis tombé sur Aurelia http://aurelia.io/.
Aurelia est un framework permettant de développer des interfaces utilisateur de nouvelle génération (application Web, pour tablette, pour smartphone ou pour bureau). Tout en offrant un ensemble de mécanisme de création d’interfaces utilisateur, maintenable, testables et extensibles.
Les atouts d’Aurelia :
- Il supporte les langages TypeScript, JavaScript ES 2016 (ECMAScript 2016.) et ES Next (JavaScript nouvelle génération). Contrairement à d’autres frameworks (ex : Angular 2) Aurelia ne vous oblige pas à développer en TypeScript. Vous avez le choix du langage du côté navigateur.
- Une documentation complète sur Aurelia Hub avec des utilisations de cas : http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/quick-start.
- S’intègre bien avec d’autres bibliothèques. Vous pouvez facilement y intégrer jQuery, React, Polymer, Bootstrap, MaterializeCSS et bien plus encore.
- licence libre du MIT. Vous avez donc le droit de l’utiliser dans des projets professionnels.
- Propre et non intrusif, Aurelia est le seul framework qui vous permet d’écrire des composants entièrement en JavaScript.
- Convention à la place de configuration. A l’aide de convention simple, Aurelia permet au développeur de réduire la quantité de code à écrire, afin de leurs permettre de se concentrer davantage sur leur application.
- Simple, mais pas simpliste. Aurelia est simple à apprendre, mais extrêmement puissant. Les développeurs n’auront pas de difficulté à l’appréhender les API et à les utiliser.
- Favorise-les « -ilities » : testabilité, maintenabilité, extensibilité, appréciabilité, etc.
- Un produit officiel et libre, mais avec un support commercial. Les frameworks Angular, Polymer et React n’offrent pas de support commercial de la part de leur société éditrice.
- C’est aussi une communauté de développeur très active, en particulier sur Gitter.
- Intégration de vos données facilement dans vos pages web au travers de modèle HTML (Template) de conversion de donnée, de bind (pont entre données et affichage), et communication avec le serveur (client Http).
- Packagine de l’application par l’intermédiaire de Webpack, Jspm, Aurelia CLI.
Voici un exemple de « template » avec en orange les directives Aurelia :
<template>
<h1>${heading}</h1>
<form submit.trigger="addTodo()">
<input type="text" value.bind="todoDescription">
<button type="submit">Add Todo</button>
</form>
<ul>
<li repeat.for="todo of todos">
<input type="checkbox" checked.bind="todo.done">
<span>
${todo.description}
</span>
<button click.trigger="removeTodo(todo)">Remove</button>
</li>
</ul>
</template>
Vidéo (en anglais) de présentation et démonstration : https://vimeo.com/117778145