jeudi 31 décembre 2009

Temps de compilation GWT

Une de faiblesse de GWT est le temps de compilation. En effet, les temps de compilations augmentent au fils des  développements et cela se révèle pénalisant à terme. L'équipe qui développe GWT l'a bien comprit et ne cesse d'optimiser le compilateur pour obtenir des temps de compilation plus courts. Entre la version 1.6.4 et la version 1.7.1 les temps de compilation ont été réduits de manière perceptible pour le développeur. Avec la version 2.0 et le nouveau "dev mode", le développeur gagne encore en réactivité.
Et les prochaines versions de GWT vont très certainement aller dans ce sens. 
En attendant, il est possible de "tuner" le paramétrage du compilateur pour obtenir de meilleurs résultats.
Tout d'abord, le paramétrage de la mémoire de la JVM est important (ex : -Xmx512m), car si le compilateur manque de mémoire il sera ralenti de manière significative.
D'autre part, les performances de votre CPU vont grandement influencer celles du compilateur. Si votre CPU est multi core alors il est possible d'utiliser le paramètre "-localWorkers n" avec n qui est le nombre de workers désirés.
Un paramétrage efficace consiste à avoir autant de workers que de cores. Idéalement, il faudrait avoir autant de cores que de permutations et que de workers.


Prenons un exemple concret. J'ai une application GWT d'une certaine taille (environ 36000 lignes de codes), qui occasionne 5 permutations. Je compile l'application sur une machine Intel Core 2 Duo. Voici les différents résultats que j'obtiens :


Paramètres
Temps de compilation
-Xmx256m
-localWorkers 1
109 secondes
-Xmx512m
-localWorkers 1
94 secondes
-Xmx512m
-localWorkers 2
81 secondes
-Xmx640m
-localWorkers 2
79 secondes


Avec ces résultats, on voit bien que ces deux paramètres influencent nettement le temps de compilation GWT. N'hésitez pas a les utiliser, car dans un projet chaque seconde compte.


En complément, vous pouvez gérer les permutation que le compilateur effectue. Pour cela vous pouvez spécifiez au niveau du module GWT (fichier *.gwt.xml) les navigateurs cibles, comme ceci :


<define-property name="user.agent" values="safari,opera"/>


NB : Avec GWT 2.0, un nouveau paramètre "-draftCompile" permet de demander au compilateur de ne pas procéder aux optimisations et donc de gagner du temps à la compilation.

dimanche 27 décembre 2009

Créer des fichiers *.deb

Ca y est vous venez de dénicher le logiciel qu'il vous manquait pour votre Ubuntu. Malheureusement pour vous, seulement les sources sont disponibles. Il va donc falloir compiler le logiciel et l'installer manuellement en ayant recours aux traditionnelles commandes :
./configure
make
sudo make install


Seulement avant que la compilation se déroule correctement, il va falloir résoudre manuellement les problèmes de dépendances. Donc une à une vous allez devoir installer les dépendances.
L'autre problème que vous allez rencontrer plus tard, c'est la désinstallation du logiciel, car il va falloir exécuter le processus inverse (manuellement).
Le but de cet article n'est pas d'expliquer les avantages d'utiliser les archives deb tellement ils semblent évidents, mais de montrer comment créer facile un fichier deb à partir d'un code source.
Pour cela il faut installer le package "checkinstall" avec la commande : 
sudo apt-get install checkinstall


Ensuite, il faut suivre le même processus d'installation à partir des sources (décrit ci-dessus) sauf qu'il faut remplacer la commande sudo make install par sudo checkinstall.
Un menu vous permettra de renseigner les informations du nouveau package, puis le fichier deb est généré.
Comme vous pouvez le constater la création d'un fichier deb est très simple. C'est pourquoi il ne faut pas hésiter à en créer car cela vous facilitera grandement la désinstallation du logiciel et sa future installation.
Si vous participer à un projet open source, la mise à disposition d'un package deb aidera votre projet a être connu.







samedi 26 décembre 2009

Deep into GWT rpc request

By default, rpc calls doesn't haves timeout.
It is a problem when the network connection between the client and the server is interrupted, because the client rpc proxy waits indefinitely for a response that will never come... The management of the timeout depends on the version of GWT.


Management of the timeout with GWT version 1.x (tested with 1.6.4, 1.7.0 and 1.7.1) :


The first naive idea is to use the Timer class. This technique is not very elegant, because it monopolizes client side resources, and do not release http connection.
The problem is that RPC connection is a persistent http connection, and browser has a maximum number of http persistent connection per server.
So to solve this problem, we must be attentive to the interface of the asynchronous RPC service.


Typically service rpc methods are reflected in the asynchronous interface, with an additional parameter for callback and void return. But the proxy generator authorizes asynchronous  methods to return different kind of object : Void, Request and RequestBuilder.
In our case, we will use the object RequestBuilder, because we can defined a timeout with the methods "setTimeoutMillis". When an asynchronous  methods return a RequestBuilder object, for calling the remote method, we must explicitly call the "send" method of the RequestBuilder object. With this approach, when the timeout is reached, an RequestTimeoutException is throwed and the callback onFailure method is called.


Management of the timeout with GWT version 2.0 :


With GWT 2.0, it is possible to define its own RpcRequestBuilder class which define the timeout and will be used by the rpc proxy for asynchronous call of RPC service. Here's the code to implement :







Then, we must affect RequestBuilder to the rpc proxy, like this :




mercredi 23 décembre 2009

Faisons simple

Sous Ubuntu certaines manipulations sont très simples voir déconcertantes. 
Par exemple pour créer un fichier ISO à partir d'un cdrom ou dvd-rom la simple ligne de commande suivante suffit :
readom dev=/dev/scd0 f=/home/svuillet/test.iso

Autre exemple pour écrire sur cdrom ou dvdrom à partir d'un fichier ISO, la simple ligne de commande suivante suffit :
wodim -v -eject /home/svuillet/test.iso


Pas besoin d'installer quoi que ce soit, tout est nativement avec l'OS. 
Enjoy.

mardi 22 décembre 2009

Javascript power

Si vous doutez encore de la puissance des applications écrites en Javascript, aller voir sur le site Chrome Experiments.
Vous vous apercevez que les limites des applications web "pure" (sans runtime), donc à base d'HTML5, de CSS3 et de Javascript, sont sans cesse repoussées. C'est assez bluffant et enthousiasmant pour l'avenir du web.
Vivement 2010 !

dimanche 20 décembre 2009

Un calendrier en ligne de commande

Sous Ubuntu, une ligne de commande peu connue mais très pratique, permet d'afficher le calendrier. Pour cela, rien de plus simple car il suffit de taper "cal" et le mois courant apparaît comme ceci :



Pour afficher l'année entière il faut utiliser l'argument "-y" et pour inverser l'affiche il faut utiliser le commande "ncal".
Cette commande est très simple mais tellement pratique une fois qu'on y a gouté...


GWT exception management

To handle exceptions in GWT, like in java we use blocks try / catch / finally.
Unfortunately, runtime exceptions can be forgotten if we do not use a try / catch / finally overall. 
GWT programs are highly asynchronous, and this characteristic force us to declare many blocks try / catch / finally. It is therefore not immune to a NullPointerException ...


Fortunately GWT provides a special handler to catch exceptions not caught : UncaughtExceptionHandler.
Once implemented the method "public void onUncaughtException (Throwable e)"
receive all the exceptions not catched. This solution is simple, effective and elegant, can be implemented afterwards without impacting the structure of the program.

samedi 12 décembre 2009

WebGL prend vie

Le consortium Khronos, qui a pour objectif de standardiser la 3D dans le navigateur (en reposant sur OpenGL), et à l'origine du lancement de WebGL, un langage permettant de standardiser la 3D dans les navigateurs. Ce consortium regroupe Nvidia, Intel, ARM, AMD, Mozilla, Opera et Google.
Les derniers build de Firefox, webkit et maintenant chromium intègrent la prise en charge de WebGL (voir ici). Des démonstrations sont accessibles ici.
Voici une vidéo illustrant les capacités actuelles des browsers implémentant WebGL :





On peut aisément imaginer l'intérêt que cela devrait susciter auprès des éditeurs de jeux vidéos en ligne, mais aussi auprès d'éditeurs plus spécialisés (géo-localisation,  ...).

jeudi 10 décembre 2009

GWT ckeditor wrapper

Un nouveau projet consistant à wrapper ckeditor avec GWT est né.
Il est en version 0.1 donc tout jeune. Souhaitons lui longue vie.


La page officiel est ici.

mercredi 9 décembre 2009

Google day

Today is a special day. Google release GWT 2.0 with eclipse plugin.
This major version of GWT 2.0 will changed the way to develop web 2.0 applications.
This release coincides with the provision of 4 Chrome beta that supports the extension.
And finally, Google provides an extension called "Speed chart" that helps to profile web application.
Now GWT applications should be written very efficiently :-)

Take a look at this video (it sums up this crazy day) :

dimanche 6 décembre 2009

GWT memory management

La gestion de la mémoire dans une application GWT est particulière. Le garbage collector dépend directement du navigateur, c'est pourquoi il y a des différences de consommation mémoire d'un navigateur à un autre. Au delà de ce constat, il y a des pièges a éviter pour que le garbage collector puisse faire correctement son travail.

Tout d'abord, il faut savoir que la méthode "finalize" héritée de la classe Object, n'est pas appelée avant destruction d'un objet.
La seule méthode fiable pour libérer des ressources est la méthode "onDetach", car elle est appelé systématiquement lorsqu'un objet graphique (qui hérite de Widget) est détaché du DOM.

Le modèle évènementiel de GWT peut être une source de non libération de la mémoire si l'on ne s'assure pas que les composants sont désabonnés aux évènements au moment de leur détachement du DOM. Ceci est particulièrement vraiment si vous utilisez un bus d'évènements.
Deux autres sources de fuite mémoire sont l'utilisation de méthodes natives et la manipulation direct du DOM.
Enfin un point particulièrement sensible est l'abonnement aux évènements de type "Window", car les objets abonnés à ce type d'évènement resteront en mémoire tant que la page ne sera pas déchargée.

Voila un petit résumé des points à contrôler dans une application GWT pour éviter d'avoir des fuites mémoire.

Complément :

Une autre source de fuites mémoire et de ralentissements d'une application GWT est le non arrêt des timers. Il faut s'assurer que la méthode cancel de la classe Timer soit bien appelée.

lundi 30 novembre 2009

Afficher un PDF dans un navigateur sans plugin

Lorsque l'on souhaite afficher un document PDF dans une application web, généralement on a recourt à un plugin comme Acrobat reader. Soit le PDF est afficher dans le navigateur, soit il est afficher dans une fenêtre externe au navigateur.
Cela pose un certain nombre de problèmes, car l'application web n'a pas de prise sur le plugin. Il n'est donc pas possible de customiser l'affichage (gestion des toolbars, réglage du zoom, etc...).
D'autre part, il y a des problèmes d'affichage qui peuvent apparaitre d'un navigateur à un autre. Avec notamment la gestion du z-index qui n'est pas du tout gérer de la même manière sous Firefox, Internet Explorer et Webkit.

Heureusement, il existe une autre solution : le viewer fournit par Google Docs.
Pour l'utiliser rien de plus simple : il faut appeler une iframe avec en url le viewer et en paramètre l'url du document à afficher. Voici un exemple :

Frame f = new Frame();
f.setUrl("http://docs.google.com/viewer?url=http%3A%2F%2Flabs.google.com%2Fpapers%2Fbigtable-osdi06.pdf&embedded=true");


Cependant, il existe quelques problèmes. Le premier est de devoir exposer les fichiers PDF sur internet. Ce problème peut être résolu en utilisant une servlet sécurisé qui fournie le flux PDF. Le second problème est l'impression des documents qui nécessite d'avoir un reader installé sur le poste client. Espérons que les prochaines améliorations du viewer Google Docs permettent l'impression propre prise en charge par le navigateur.
Affaire à suivre...

dimanche 29 novembre 2009

GWT connectors

Si vous avez à gérer dans une application web, la conception de schéma, il existe une api pour GWT nommée gwt-connectors. Cette api permet de gérer facilement le dessin de schéma à partir de d'éléments HTML; C'est à dire les connexions entre les entités (points de rattachements, flèches, ...).

vendredi 27 novembre 2009

GWT 2.0 Release candidat 2


C'est fait la RC2 de GWT 2.0 vient de sortir. Google a vraiment accélérer la sorties des versions de GWT. On pourrait même croire que la version finale de GWT 2.0 sortira en décembre 2009.
Dans cette nouvelle version j'ai pu constater que la complétion automatique des éléments dans un ui-binder est fonctionnelle sauf pour les propriétés des widgets (ce qui n'était pas le cas dans le version précédente).
Hormis ce point, je n'ai pas constaté de nouveautés visibles.

Pour revenir a l'ui-binder, ce que je trouve intéressant c'est de pouvoir décrire la disposition (layout, panel) et le rendu (style CSS) d'un composant GWT sous la forme XML. Le code java associé s'en retrouve très allégé, donc plus lisible et plus maintenable. Ainsi, les applications écrites en GWT 2.0 devrait pleinement pouvoir exploiter la puissance de cette technologie.

dimanche 22 novembre 2009

Chrome OS

Google a ouvert l'accès au code source de son futur système d'exploitation : Chrome OS.
On peut donc dès maintenant télécharger le code source, le "builder" et le tester.
On peut même trouver des machines virtuelles toutes prêtes avec Chrome OS installé.
La première impression est la sensation de rapidité, sur ma machine le temps de lancement de chrome OS (affichage de l'écran de login) est de 4 secondes !

Ensuite, on se connecte avec son compte Google. Et la on se retrouve face à une interface dépouillée (en fait l'interface de Chrome avec quels icônes supplémentaires). Deux onglets se sont ouverts automatiquement : Gmail et Google Calendar. Le système d'exploitation est complètement orienté cloud computing.

Pour l'instant l'OS n'est pas finalisé et il manque encore des fonctionnalités et j'ai pu constater quelque "freeze". Par contre, en cas d'arrêt inopiné, au redémarrage on retrouve tout ces petits.
Faisons confiance à Google pour stabiliser Chrome OS, en attendant il va falloir s'armer de patience : wait and see.

add-on :

Chrome OS serait à base de Debian et des ingénieurs de Canonical travaillerait avec Google pour mettre au point Chrome OS. Voici un article détaillé sur ce sujet.

samedi 21 novembre 2009

GWT 2.0 Release candidat 1

Cette semaine la première version release candidat de GWT 2.0 a été mise à disposition par les équipes de Google.
La première chose que j'ai constaté, c'est que cette version n'est plus exploitable avec le plugin Eclipse fournit par Google. Et cela s'explique car les arguments des commandes du toolkit ont changées. Il faut donc télécharger le version 1.2rc1 du plugin.
Avec ce nouveau plugin des améliorations sont apportés. On a désormais une intégration complète du "dev mode"  dans Eclipse.

Deux wizards font leur appartient, un pour créer rapidement des RessourcesBundles et un autre pour créer un modèle de démarrage pour UIBinder.
Une assistance à la création des méthodes dans interfaces Asynchrone callback permet de gagner du temps.

Pour les points négatifs de ce plugin, je retiendrais que je n'ai pas réussi à faire fonctionner l'auto-complétion dans les méthodes natives (JSNI); Et qu'il n'y a pas encore d'auto-complétion dans les fichiers ui.xml.
Ce qu'il serait intéressant à terme ce serait d'avoir un aperçu du rendu des fichiers ui.xml, voir d'avoir assistance graphique d'édition des fichiers ui.xml.

Voici la page officiel : http://code.google.com/p/google-web-toolkit/wiki/GWT_2_0_RC

mardi 17 novembre 2009

GWT et HTML5

Les premières API pour GWT exploitant les nouvelles fonctionnalités de HTML5 commence à apparaitre. Bien entendu, il faut que le browser supporte ces fonctionnalités.
On trouve ainsi l'implémentation de la web database, du web storage et de la géolocalisation.
Je n'ai pas encore pu manipuler ces API, mais cela semble prometteur.

Pour en savoir plus, rendez-vous ici : http://code.google.com/p/gwt-mobile-webkit/

dimanche 15 novembre 2009

Soirée Google au JUG de Lyon

Lundi 23 novembre 2009, le JUG de Lyon accueillera Didier Girard qui présentera les dernières nouveautés pour GWT, Google App Engine mais aussi Wave, Android et Google Apps. Des démonstrations sont prévues, ce qui devrait bien rythmer la présentation. Cette soirée devrait être riche en échanges tant sur les nouveautés que sur les retours d'expériences. N'hésitez pas à vous inscrire sur le site du JUG de Lyon.


Pour rappel, j'avais présenté GWT lors de l'inauguration du JUG de Lyon, vous pouvez retrouver la présentation ici.



samedi 14 novembre 2009

Gestion centralisée des évènements avec GWT

Afin de gérer certains évènements de manière global dans une application écrite avec GWT, sans altérer le comportement de l'application, c'est à dire sans retoucher la gestion des évènements de composants de l'application, il existe un moyen simple et efficace : l'utilisation de l'évènement NativePreviewEvent.
Par exemple, on peut abonner l'entry point de l'application à l'évènement NativePreviewEvent, voici un exemple :











Dans la méthode onPreviewNativeEvent il est possible de déterminer le type d'évènement. On peut ainsi effectuer un traitement spécifique avant que les composants de l'application reçoivent cet évènement. Il est aussi possible de stopper la propagation de l'évènement aux composants de l'application.

mercredi 11 novembre 2009

Motorola Droïd

Je crois que j'ai trouvé mon futur téléphone : le Motorola Droïd (connu sous le nom de Milestone en Europe). Ce qui est remarquable avec ce téléphone c'est d'abord ces caractéristiques techniques : écran de 3,7 pouces, processeur cadencé à 550Mhz, 256 Mo de RAM, et un clavier physique.
Mais cela ne s'arrête pas là ! Le système d'exploitation installé n'est autre qu'Android 2.0 qui apporte tout un lot d'évolutions tels que : le support de MS Exchange, Google Maps navigation, la fonction gesture, un widget YouTube, ...
Parmi toutes ces nouveautés, il y a Google Maps navigation qui mérite que l'on s'attarde dessus. En fait, il s'agit du système de navigation GPS de Google qui apporte le guidage vocal, la recherche full text, la recherche vocale, la vue satellite, l'info traffic, ainsi que l'intégration de street view.
Bref, Google et Motorola vont frapper un grand coup cette fin d'année et cela pour toujours plus de confort d'utilisation.
Le Motorola Droïd est déjà sorti aux Etats Unis et marketing va bon train. Voici une des publicités diffusées aux Etats Unis :

lundi 9 novembre 2009

Optimiser le chargement d'une application GWT

Les applications RIA ont en commun une problématique récurrente : le temps de chargement.
En effet, dès que l'application s'étoffe en fonctionnalités, le volume à télécharger sur le poste client augmente. Cela peut devenir dramatique dans le cas de grosses applications.
Généralement pour palier à ce problème, on procède à un découpage de l'application en modules afin de réduire le temps de chargement.
Malheureusement cette technique n'est pas très flexible car le découpage est statique et complique la communication entre les modules.
GWT 2.0 introduit la notion de CodeSplitting. L'idée est de découper l'application GWT en plusieurs fragments (morceau de javascript), qui seront téléchargés à la demande. L'utilisation de ce mécanisme est très simple à mettre en oeuvre, voici un exemple :


dimanche 8 novembre 2009

Robustesse des services rpc de GWT

Par défaut, les appels rpc n'ont pas de timeout et l'appel à un service rpc est par nature asynchrone.
Alors que se passe-t-il en cas de perte de connexion réseau en court d'appel à un service rpc ?
Et bien le proxy qui est en charge de la mécanique d'appel du service rcp se met en attente. Dès que le connexion réseau est rétablie, le proxy relance la séquence d'appel !
Avec un tel mécanisme on comprend aisément que les applications écrites avec GWT sont très robuste aux pannes de réseaux. D'un point de vue de l'utilisateur, cela signifie : pas de perte de données, pas de re-saisie ou de re-validation d'un formulaire.

mardi 3 novembre 2009

gwt-log

GWT-LOG est une bibliothèque de logs pour GWT comparable à log4j.
Cette bibliothèque permet manipuler les traces côté client. Il est possible d'envoyer les traces au serveur afin de centraliser celles-ci (en utilisant soit log4j, soit Log JDK 1.4).
Il existe plusieurs types de loggers (Console, FireBug, DivPanel, GWTLogger, RemoteLogger,...), ainsi que des niveaux de trace (DEBUG, INFO, WARN, ERROR, FATAL,...).
On peut aussi définir le pattern des traces
A noté que GWT-LOG propose un fonctionnalité particulièrement intéressante : la possibilité de tracer n'importe quelle exception non trappée.

Cet outil est incontournable lorsque l'on développe avec GWT (http://code.google.com/p/gwt-log/).

dimanche 1 novembre 2009

Ubuntu 9.10 Karmic Koala

Depuis une journée je suis passé à la version 9.10 de système d'exploitation favori.
L'interface est ergonomique et visuellement on se rapproche de la philosophie mac. De version en version Ubuntu s'améliore au niveau de l'interface graphique.
Avec cette version, la gestion des modes veilles a été grandement améliorée.
L'USB 3.0 est supporté, mais je n'ai pas encore eu l'occasion de le tester.
Ubuntu One est désormais intégré, et une nouvelle Logithèque est disponible.
Ubuntu 9.10 est orienté cloud, il est possible de créer un cloud privé, en local (qui peut être transféré vers le cloud public EC2 d'Amazon). Cette dernière fonctionnalité est des plus intéressante, il va me falloir tester celle-ci.

samedi 31 octobre 2009

HTC Hero


Hier, j'ai eu la chance d'avoir entre les mains le smartphone HTC Hero
avec Android 1.6 comme OS. J'ai vraiment été bluffé par l'ergonomie
tant du téléphone que de l'OS. La navigation est intuitive et fluide.

D'autant que les performances sont au rendez-vous.
Et cerise sur le gâteau le service Android
Store est déjà  très fourni en applications (majoritairement
gratuites). Ce téléphone combiné à  cet OS possède les gènes de
l'iPhone Killer. Affaire à  suivre...
Pour ma part, cela m'a vraiment donné envie de reprendre mes études sur Android.

mardi 27 octobre 2009

Errai framework

La communauté JBoss est à l'initiative d'un framework basé sur GWT, le framework Errai.
L'idée est de structurer les applications GWT en tirant profit du potentiel de GWT. C'est pourquoi, ce framework est orienté messages. Il se décompose en trois grandes parties :

  • ErraiBus : c'est la base qui permet de manipuler les messages
  • ErraiWidgets : c'est un bibliothèque de composants graphiques tirant pleinement profit de GWT
  • ErraiWorspaces : c'est un ensemble d'outils permettant d'assembler une application

L'approche adopté au niveau de ErraiBus me semble très judicieuse, elle permet de tirer profit du modèle évènementiel de GWT, le rend plus accessible et surtout offre une structuration.
Même si pour l'instant il n'y a pas beaucoup d'éléments sur ErraiWidgets, l'intention est là. C'est peut être LA bibliothèque de widgets que l'on attendait.
Enfin, on reconnait la touche de Red hat avec ErraiWorkspaces qui apporte une industrialisation des développements et de l'intégration.

A suivre de très près, je pense qu'il y a un vrai potentiel...

http://jboss.org/errai

lundi 26 octobre 2009

GateIn 3.0.0 Beta 2

Le partenariat entre Red Hat et Exo Plateform va permettre d'enrichir l'offre de portail de Red Hat avec le produit GateIn. La version communautaire sera finalisée en début d'année 2010. GateIn est prometteur car il regroupe le meilleur d'Exo Portal et de Jboss Portal.
C'est à dire la robustesse et la structuration de JBoss Portal, mais aussi l'interface homme machine soigné d'Exo Portal.
Une bonne nouvelle est que GateIn supporte des Google Gadgets, ce qui permet d'avoir un vivier de fonctionnalités supplémentaire.
De plus, le développement d'un gadget est très simple avec la technologie GWT.
Cependant, des questions sont encore ouvertes, et notamment "Est-ce que GateIn profitera de l'écosystème d'Exo Plateform ?".
Affaire à suivre...

Devoxx 2009

En allant au JUG de Lyon, j'ai eu le plaisir de gagner une place pour le Devoxx 2009. La sélection des conférences n'a pas été facile tant les sujets sont nombreux et tous plus intéressants les uns que les autres.
Dans les grandes lignes j'irais voir les sujets : HTML 5, JEE 6, Spring Framework 3.0, Google App Engine, web et OSGI.



Devoxx 2009

mercredi 21 octobre 2009

GWT 2.0 Milestone 1

Mes premiers développements avec GWT 2.0 sont vraiment concluants. Mon environnement de développement est le suivant : Eclipse 3.4, FireFox 3.0.14, Ubuntu 9.04.
Le dev mod (remplaçant du hosted mod) est vraiment très réactif (temps de recompilation imperceptible) et engendre un productivité accrue : un vraiment bonheur.
L'utilisation du code splitting est très simple et efficace. J'ai aussi réaliser quelques tests de l'UIBinder. Pour l'instant, sans un designer intégré à Eclipse l'utilisation de cette fonctionnalité me parait pas optimale, cependant cela permet d'alléger les classes des layouts.
Il me reste encore à tester le ClientBundle et l'HtmlUnit.
Affaire à suivre...