On aime, on partage #7

Bienvenue dans la série « On aime, on partage » d’Objet Direct !
Chaque semaine retrouvez les meilleurs articles du web issus de notre veille technologique.
 
 
 
 

Java :

GWT de Google est mort, vive le GWT de la communauté !

L’avenir du framework GWT a été abordé lors de la dernière conférence Google I/O. Pour rappel, ce framework permet de concevoir des interfaces web en Java (concrètement, le code Java de la partie client d’une application GWT est compilé vers du Javascript). Pour les futurs développements, l’équipe souhaite mettre l’accent sur le performances (compilation, exécution), les problèmes de mobilité (conso batterie, réseau), et un meilleur suivi des version de Java (7, et bientôt 8). Il a aussi été question de nouveautés dans l’organisation du développement de GWT : le projet était déjà open-source, mais Google a décidé de passer sur un mode plus « communautaire » en le plaçant sous la gestion d’un comité de pilotage géré par plusieurs acteurs… une manière élégante de s’en débarrasser ?

http://javaweb.developpez.com/actu/55878/GWT-de-Google-est-mort-vive-GWT-de-la-communaute-la-feuille-de-route-de-la-boite-a-outils-de-developpement-Web-devoilee/


Retour d’expérience sur la création d’une application “desktop” à base d’HTML5

Nos confrère d’Ippon nous partagent leur récente expérience mettant en oeuvre HTML5 dans la réalisation d’une application multi-plateforme / multi-devices ayant la particularité de proposer un mode offline. La problématique de gestion du cache est bien détaillée ce qui permettra à quiconque se lançant dans un développement similaire de gagner un temps précieux en évitant quelques pièges.

http://blog.ippon.fr/2013/05/23/une-application-html5-desktop-en-mode-offline




Agilité :

Sprint Reviews in practice

La revue de Sprint est un élément essentiel de Scrum.

Dans l’article qui suit, Ian Mitchell nous en fait une présentation complète (et plus !) : quezaco ?, les différentes étapes, la différence avec la rétrospective, le backlog grooming, les anti-patterns et quelques conseils avisés pour que ce soit une réussite !

Vos revues de sprint ne se passent pas de la manière dont vous souhaitez ? Lisez cet excellent article, un must read pour tout Scrumiste !!!

http://agile.dzone.com/articles/sprint-reviews-practice




Design et conception :

DIP in the wild

Le principe d’inversion de dépendences, ça vous parle ? Voila un article très complet sur le blog de Martin Fowler. Prenez le temps de le lire. Après une longue introduction à ce qu’est le principe d’inversion de dépendances (le DIP du titre) par rapport à l’injection de dépendance ou l’inversion de contrôle, l’auteur illustre ses propos à travers différents exemples. En conclusion, Brett Schuchert rappelle que le code est le moyen d’arriver à ses fins et non la finalité en elle même. Il rappelle aussi que ce qui marche dans un contexte peut ne pas marcher pour un autre. Bonne lecture …

http://martinfowler.com/articles/dipInTheWild.html




Tribune libre :

HOW-TO : Piloter un drone à la Minority Report

Nous avons la chance en tant que développeur d’avoir la possibilité d’assister a un grand nombre d’évènements (DOJO, Barcamp, etc.). Il faut bien avouer que les occasions ne manquent pas et que nous avons l’embarras du choix ! Parmi ces évènements voici le retour d’un “Coding Marathon” organisé par la société Palo-IT qui, par son choix de sujet original, mérite toute votre attention ! En effet, nos confrères ont mixé 2 dispositifs High-tech du moment :

  • le capteur Leap Motion (dispositif prometteur permettant de communiquer avec un ordinateur avec une gestuelle qui n’est pas sans rappeler celle que nous avons découvert il y a quelques années dans le film Minority Report) .

  • l’AR.Drone de la société Parrot (un drone quadrirotor)

L’aventure nous est relatée itération par itération présentant ainsi les différentes embûches rencontrées et les premiers pas avec ces technos originales. Même si il reste encore un peu de travail pour arriver à maîtriser parfaitement les deux appareils, gageons que les participants ont passés un bon moment !

http://palo-it.com/blog/piloter-lar-drone-2-0-avec-le-capteur-leap-motion


Comment déterminer qu’un grand nombre est divisible par 7 ?

Tout ça de manière graphique applicable par un enfant … Le pire, c’est que ça marche !!!

http://blog.tanyakhovanova.com/?p=159


Merci à nos contributeurs de la semaine : Clément Plantier, Jean-Philippe Letard, Mathieu Laurent et Benjamin Marron.

Coding dojo Flex Mobile : Presentation Model

Le deuxième coding dojo sur Flex Mobile a eu lieu hier soir dans les locaux d’Objet Direct Grenoble.

Contexte fonctionnel :

  • Flickr via son API avec des scénarios utilisateurs de recherche par mots clés et d’affichage de résultats.

Objectifs :

  • Utiliser le SDK Flex 4.6 sorti récemment en release candidate
  • Définir une architecture logicielle telle qu’on pourrait en avoir besoin sur des applications plus conséquentes. En l’occurrence, nous sommes partis sur une architecture reposant sur le presentation model, de l’injection de dépendances avec le framework Swiz
  • Refactorer le code du dojo précédent en suivant l’architecture précédemment définie (nous nous étions arrêter à la green phase)
  • Profiler l’application dans cette architecture

Les conditions du dojo :

  • 4 développeurs
  • un écrivain qui tourne toutes les 10 minutes
  • durée : 4 heures, incluant une pause repas

Rétrospective :

  • Les plus de la soirée :
    • Des objectifs remplis 🙂
    • Découverte de nouveau framework pour certain
    • Partage sur les bonnes pratiques (injection de dépendances vs évènement)
    • Plus efficace qu’au premier dojo : objectifs clairement établis avant la soirée, rythme imposé par le roulement de l’écrivain
    • Une bonne machine de développement (merci la DSI)
  • Les points à améliorer :
    • Une rotation de 10 minutes c’est un peu court pour l’écrivain, particulièrement quand il y a des échanges / débats
    • Pour l’instant, l’application tourne seulement sur un émulateur.

Les prochains évènements :

  • un prochain dojo dans 3 semaines
  • une présentation technique de ce qui a été réalisé lors de ces dojos
  • la mise à disposition des sources dans Codendi

Lancement du coding dojo sur Flex mobile

Dernièrement, Objet Direct a démarré une série de coding dojos sur le thème Flex et la mobilité.

Les objectifs :

  • prendre en main l’outillage
  • monter en compétence sur cette nouvelle technologie
  • évaluer les capacités de la plateforme
  • partager / apprendre collaborativement

Les conditions choisies :

  • une équipe de 4 personnes
  • un écran, un clavier, un vidéo projecteur
  • un objectif de séance partagé par tous

Rétrospective sur l’organisation :

  • Les plus de la soirée
    • Une application qui fonctionne ! C’est toujours bon pour le moral
    • Une bonne cohésion dans le groupe
    • Une bonne ambiance
  • Quelques améliorations à apporter
    • Définir un objectif en amont de la soirée afin de gagner en efficacité
    • Alterner plus fréquemment d’écrivain
    • Inciter l’écrivain à mieux décrire ce qu’il fait

Les prochains évènements :

  • Une deuxième soirée courant novembre
  • Une série d’articles techniques présentant les investigations menées

Google Web Toolkit et Dojo : Tatami version 1.3

Logo OD labs projet soutenu par Objet Direct
Tatami est le projet Open Source d’Objet Direct pour le développement d’applications GWT. Une nouvelle version est arrivée mi décembre, la version 1.3. C’est effectivement notre troisième mouture depuis la création du projet (été 2007). Rappelons que Tatami a l’ambition majeure d’encapsuler le toolkit JavaScript nommé Dojo (www.dojotoolkit.org) afin de fournir les richesses de cette immense librairie en GWT.
Le projet est hébergé sous Google Code : http://code.google.com/p/tatami/
Dans cette  dernière version beaucoup de points ont été abordés, que ce soit en termes de nouveaux composants, conception ou de livraison.
Ainsi, voici une liste des nouvelles fonctionnalités disponibles :

  • Encapsulation de la version de  1.2.3  de Dojo.
  • Intégration de la nouvelle API pour la DataGrid.
    Dojo 1.2.1 arrive avec de nouvelles fonctionnalités pour la DataGrid ainsi que quelques changements dans l’API.
  • API  pour la gestion de Drag And Drop.
    Intégration de l’API Dojo pour effectuer du Drag and Drop entre les composants.
  • API pour la réalisation de charting.
    Création de diagramme en bâtons, camembert, nuages… avec différents effets.
  • De nouveaux Widgets :
    • Un  BorderContainer.  Comme le DockPanel GWT mais utilisant le layout Dojo,  l’accessibilité est ainsi améliorée.
    • Le widget Tree de Dojo.
  • API pour la gestion des thèmes Dojo :
    Plus besoin de rajouter dans le fichier bootstrap du module GWT la classe CSS dans l’élément body. Les thèmes disponibles sont ceux de Dojo :

    • Tundra
    • Soria
    • Nihilo

Ci-dessous un exemple pour utiliser le thème Nihilo avec le thème chrome des composants GWT.

<inherits name= »com.google.gwt.user.User »/>
<inherits name= »com.google.gwt.user.theme.chrome.Chrome »/>
<inherits name= »com.objetdirect.tatami.Tatami_dojoAll »/>
<inherits name= »com.objetdirect.tatami.theme.Nihilo »/>

On peut aussi changer de thème  de façon programmatique :


Tatami.applyTheme(Tatami.NIHILO_THEME,false);

  • Optimisation des modules Dojo chargés selon les besoins du développeur.
    Les versions précédentes de Tatami utilisaient le chargement dynamique des scripts Dojo afin de créer les différents objets. Cette approche pouvait être pénalisante pour un utilisateur ne souhaitant utiliser qu’un module spécifique comme le charting, gfx ou uniquement des widgets car beaucoup de requêtes sont envoyées. Afin d’optimiser cela, Dojo propose un outil permettant de créer des modules JavaScript chargeant les ressources nécessaires qui éviteront ainsi toutes ces requêtes.  C’est pourquoi, plusieurs modules GWT existent désormais dans Tatami :

    • Tatami_Base : Tatami sans Dojo, le framework Dojo ne sera pas chargé, YUI non plus. L’intérêt de n’utiliser que ce module n’a pas vraiment de sens pour le moment.
    • Tatami_DojoBase : Tatami et Dojo avec chargement dynamique de tous les objets. Dans ce module, le drag and drop YUI n’est pas possible.
    • Tatami_DojoCharting : Tatami et Dojo avec une optimisation des chargements des objets pour effectuer du charting.
    • Tatami_DojoGFX :  Tatami et Dojo avec une optimisation des chargements pour l’utilisation du package gfx.
    • Tatami_DojoWidget : Tatami et Dojo avec une optimisation des chargements pour l’utilisation des widgets (DatePicker, DataGrid…).
    • Tatami_DojoALL : importe toutes les modules d’optimisation de chargement. Ce module impliquera un chargement plus long pour l’application la première fois mais une création des composants plus fluide.
    • Tatami_YUI : Tatami et les scripts YUI pour effectuer du Drag and Drop. Dojo ne sera pas chargé.
    • Tatami : Ce module importe les modules suivant : Tatami_Base, Tatami_DojoBase, Tatami_YUI ainsi que le thème Tundra. On reste donc en chargement dynamique par défaut avec le thème tundra.

Un utilisateur de Tatami ne souhaitant utiliser que le module de charting pourra optimiser le chargement de ses composants dans l’application en important le module Tatami_DojoCharting par exemple.

  • Refonte du packaging du projet :
    Tatami est maintenant découpé en 6 sous-projets.

    • TatamiJS : projet concernant la gestion des versions de Dojo, YUI etc…  ainsi que les différents builds possibles pour optimiser le chargement des objets Dojo. En clair, dans ce projet se trouvent toutes les librairies JavaScript utilisées.
    • Core : Développement des différents composants GWT faisant partie du projet Tatami. Ce projet est dépendant du projet TatamiJS évidemment.
    • Tests : Projet permettant d’effectuer les tests sur les différents composants en utilisant HTMLUnit.
    • TestUtil : Projet contenant différentes classes « Helper » pour le projet tests.
    • Demo : Projet de type showcase, démontrant les différents composants de Tatami.
    • Tatamix : Ce projet est une extension de Tatami. Dans ce projet on va trouver des widgets « expérimentaux » c’est à dire des widgets non industrialisés, mais pouvant être tout de même très utiles aux développeurs. Dans ce projet on trouve par exemple : Un framework HMVC (Hierarchical Model View Component) pour faciliter le développement des applications GWT, divers widgets natifs GWT comme GlassDialog, OptionPanel, Loader, Title etc… ou simplement des widget Tatami étendu ou faisant partie d’une composition comme ColorEditor. Le projet TatamiX est distribué dans un jar à part, mais dépend d’une version de Tatami.
  • Tatami-1.3  est toujours livré sous un jar contenant toutes les dépendances JavaScript (Dojo, YUI).
    La documentation utilisateur est maintenant disponible en ligne directement : TatamiUserDocumentation.html ou en version imprimable : TatamiUserDocumentation.pdf. Le projet utilise l’outil Lyx pour générer les différentes documentations. Lyx est un outil WYSIWYG basé sur LaTeX.
    Les démos en ligne de la version sont disponibles ici : showcase et TatamiPlayer.