Accueil Le blog ebiznext
Angular + Europe = ngEurope 2014 (1/4)

Le 22 et 23 octobre dernier se déroulait à Paris la conférence européenne sur AngularJS. Une grande messe que beaucoup attendait tant ce projet a connu un succès fulgurant dans la communauté JS. Je vous propose donc un “petit” retour sous la forme de 4 compte-rendu (un par demi-journée) avec le maximum de liens vers les présentations et autres sources pour assouvir votre curiosité.

Jour 1 - matin

 

Keynote (Igor Minar & Brad Green)

 

https://docs.google.com/presentation/d/1-M5U0B6JI2JKU2ibVmU-xKkR7a88Uz1ZN0pc2lEuGzE/edit#slide=id.p

 

Igor et Brad nous font l’état des lieux du projet AngularJS histoire de nous rappeler s’il en était besoin que celui-ci est un succès grandissant. Angular c’est :

  • plus de 1600 sites ou appli web déployés avec quelques belles références comme certains produits /services Google (Google Fiber ou encore Google Web Engine), Netflix, HBO, Amazon (pour certaines parties du site bien précise) et Virgin America dont on aura un retour d’expérience en fin de journée.

  • plus de 1000 contributeurs au projet (dont 400 rien que pour la version 1.3)

  • plus de 230 meetup de par le monde

  • plus d’une trentaine de livres publiés

 

Ensuite, un focus est fait sur la dernière release 1.3 qui vient juste de sortir pour nous rappeler ce qu’elle adresse dans les grandes lignes :

  • amélioration des performances

  • meilleure gestion des formulaires

  • l’arrivée d’un nouveau module pour gérer l’accessiblilité (ngAria)

  • l’annonce d’une implémentation en cours pour le web de Material Design, Angular Material

 

Enfin, pour conclure cette keynote, un point sur Angular 2 que tout le monde attend avec grande impatience. On nous annonce surtout les axes d’amélioration que l’équipe souhaite adresser avec cette version, qui sera résume en 3 points.

  1. le mobile : l’implémentation de matérial design pour une expérience uniforme entre les applis natives et les applis web, un nouveau routeur, une meilleure gestion des animations et du touch.

  2. les performances : avec un allègement de la charge sur le Garbage Collector, une optimisation des opérations sur le DOM et de nouveaux outils d’analyse pour simplifier la vie du développeur.

  3. le passage à l’échelle : c’est à dire permettre d’écrire des applications web complexes (avec une grosse “base code”), plus facilement ainsi que fournir tout ce qui est utile pour rendre le développement encore plus aisé. Ce qui se traduit par un meilleur support dans l’IDE, avec notamment le support d’ECMAScript 6, l’introduction d’un système de type optionnel, ainsi que l’introduction de métadonnées qui permettront comme nous le verons plus tard de permettre de faire de l’introspection. Enfin un meilleur outil de génération de documentations.

 

Tous ces points nous serons présentés plus en détails plus tard durant la conférence.

 

Angular 1.3 (Jeff Cross & Brian Ford)

 

https://drive.google.com/file/d/0Bw6GBXhPGkUGcEVuQlFMQklnUTA/view

 

Bien que tous attendent de vraies informations sur le futur d’Angular, c’est par une présentation de la version 1.3 que commence cette 1ère conférence. Une version majeure tout de même qui aura mis 8 mois à sortir, avec plus d’1 milliers de commits par plus de 400 contributeurs.

On nous rappelle que l’accent a été mis sur les performances, mais cela au détriment du support d’IE8. Un slide nous presente un benchmark réalisé avec BenchPress (https://github.com/angular/benchpress) sur la manipulation d’une énorme table, et nous annonce plus 50% de gains selon les cas.

 

On nous annonce donc :

 

  • l’introduction d’un mode “production” à activer dans Angular pour supprimer les multiples info de debug que le framework peut maintenant nous fournir. $compileProvider.debugInfoEnabled(false)

 

  • une nouvelle option $httpProvider.useApplySync(true) qui permet de traiter toutes les réponses reçues et de ne les traiter que dans un seul cycle de digest.

 

  • le support du one time binding via l’opérateur :: en préfix de votre variable. Son implémetation a ceci d’intéressant que si la variable n’a pas de valeur (undefined), elle sera de nouveau réévaluée jusqu’à sa valorisation, après quoi, elle ne sera plus surveillée ($watch).

  • Des améliorations pour la gestion de formulaires avec notamment

    • l’introduction de $formatters et $validators/$asyncValidators

    • le support de l’option debounced

    • le support de getter/setter sur le ngModelOptions

    • une nouvelle directive ng-messages pour gérer les messages d’erreurs liés au champ de formulaire

  • L’introduction de la directive strictDi qui permet de vérifier que toutes les dépendances seront bien résolues. Si on couple cette directive avec ng-annotate, fini les problèmes d’injections de dépendances et les messages d’erreurs illisibles au runtime.

  • La création d’un nouveau module ngAria permettant de gérer plus facilement l’accessibilité des sites. (voir la conférence dédié sur le sujet).

 

Voila, pour les nouveautés majeures, pour le reste je vous invite à consulter le billet de blog de l’équipe Angular http://angularjs.blogspot.fr/2014/10/angularjs-130-superluminal-nudge.html

 

Ionic Framework (Andrew Joslin)

 

Nous avons eu droit à une session de live-coding très bien rythmé pour nous montrer toute la force du framework Ionic. Celui-ci permet de développer des applications web cross-plateform très rapidement tout en gardant en tête les spécificités ergo-design spécifiques à chaque OS. Par exemple, la transition entre écran ne sera pas la même entre du iOS et de l’Android, idem pour le comportement du bouton back. Tout ceci pour permettre d’obtenir la meilleure expérience utilisateur possible. Le framework s’appuie sur des briques connues AngularJS et Cordova, auxquelle, il rajoute des directives spécifiques permettant un accès rapide à des composants natifs des devices. L’environnement permet le live-reload pour tester dans le navigateur à la volée. Cela donne envie d’essayer mais je reste quand même réticent à l’idée de devoir utiliser des directives spécifiques au framework rajoutant encore une couche de dépendance supplémentaire à la solution. A comparer le gain avec une solution basique conçu avec les même briques.

 

http://ionicframework.com/

https://play.google.com/store/apps/details?id=com.patcito.NgEurope

AngularDart under the hood (Victor Berchet & Rado Kirov)

 

Je dois avouer que j’ai eu bien du mal à suivre cette présentation, d’abord parce qu’on y parle de Dart, et bien que j’ai déjà eu l’occasion de faire un hands-on sur le sujet, je ne suis toujours pas convaincu que ce soit une solution d’avenir dans laquelle il faut s’investir (l’annonce d’AtScript plus tard dans la conférence me confortera dans mon sentiment). Et d’autre part la présentation était un peu soporifique. Pourtant si l’on prêtait une oreille un peu attentive, on y apprend en réalité que tous les concepts derrière AngularDart se retrouveront dans Angular 2.

On retiendra donc :

  • l’utilisation d’annotation pour définir nos directives

  • l’introduction du concept de Views et Viewports

  • l’introduction du concept de Zones qui remplacera la notion de $scope et des opérations de type apply().

 

https://angulardart.org/

 

Can We Learn from Architects ? (vojta jina)

 

Dans cette présentation, Vojta nous propose de prendre un peu de recul sur notre code et à nous poser comme question, quelles bonnes pratiques peut-on mettre en place pour produire du code plus robuste. Pour lui, cela passe par l’introduction de certains paradigmes issus de la programmation fonctionnelle, dont les 2 suivants :

  • l’utilisation de fonctions pures (pour éviter les effets de bord)

  • l’immutabilité (assure qu’une variable ne verra jamais sa valeur changée inopinément)

 

Etant aussi développeur Scala, je n’ai rien appris de nouveau ou révolutionnaire, cela tombe un peu sous le sens pour moi, mais nul doute que cela pouvait être intéressant pour d’autres et il est toujours bon de sensibiliser les développeurs sur le sujet, surtout après plus de 10 ans de programmation impérative et le retour en force des langages fonctionnels.

Using AngularJS and Phonegap to build hybrid mobile applications (Julien Bouquillon)

 

http://blog.revolunet.com/ngeurope-angular-cordova/#1

Cette présentation est l’occasion de rappeler qu’on n’est pas obligé d’utiliser Ionic Framework pour faire du développement applicatif cross-plateform, et que si vous êtes réfractaire à utiliser une solution qui vous “enferme” dans ses propres directives, vous pouvez le faire très simplement avec juste Apache Cordova et peut-êre aussi si vous le souhaiter utiliser le module ngCordova (aussi proposé par Ionic ;-)) qui propose un ensemble de plugin cordova “angularisé”.