Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.

Mobilité

Tester Android avec Robospock

Il existait jusqu’ici un certain nombre de librairies (comme Roboelectric et Robotium) pour tester les applications Android de manière intégrée et fonctionnelle. Inspiré du framework de test Groovy SpockFramework et de Roboelectric, voici Robospock. Le but est d’utiliser Groovy pour créer des tests avec le paradigme Given, When, Then, Where de RSpec, ce qui rend les tests lisibles et clairs. De plus, cette librairie amène toutes les goodies du framework Spock, à savoir :

  • Du reporting aussi bien dans la console que dans une page web avec le détail de chaque élément de l’instruction qui a fait échouer le test
  • Les noms de méthodes sont des GStrings, qui peuvent être sur plusieurs lignes, et l’ont peut donc mettre des variables dans le nom de méthode, par exemple : def « #a * 2 doit être égal à #b » () {}
  • Il est aisé de découpler des setups de tests compliqué, et de créer des DSLs pour cela, par exemple avec Spring.

C’est donc l’occasion de profiter sur Android, d’une librairie de test mature et éprouvée qui fera gagner bien des heures de développement.

Web

Comprendre le moteur d’injection d’AngularJS

Avec la popularité croissante d’Angular, de plus en plus de développeurs sont intéressés par l’implémentation des paradigmes de cette librairie. Quoi de mieux donc, que de casser le moteur d’injection d’Angular pour comprendre son fonctionnement ? Cet article (en Anglais) démystifie ce qui est certainement la feature la plus importante du framework : http://www.alexrothenberg.com/2013/02/11/the-magic-behind-angularjs-dependency-injection.html

WebSockets avec NGINX v1.3

Nginx, Inc., a annoncé récemment une nouvelle itération de son serveur web

Pour rappel, NGINX est un serveur web utilisé par presque 30% de sites supportant le plus gros traffic au monde  : facebook, github, netflix, etc. Il se distingue par sa haute performance et sa petite empreinte mémoire.

Cette nouvelle version apporte notamment le support du protocole WebSocket, la fonctionnalité tant attendue par la communauté NGINX et les développeurs web partout dans le monde.

WebSocket est un protocole web permettant la communication bidirectionnelle pour les navigateurs et les serveurs web. Il vise à simplifier considérablement le développement des applications web temps-réel. Le WebSocket est actuellement supporté par pratiquement tous les navigateurs majeurs, ainsi que les serveurs java GlassFish, Jetty et Tomcat.

Le travail d’implémentation du protocole dans NGINX a été sponsorisé par CloudBees et Apcera qui utilisent NGINX dans leurs offres PaaS.

Sortie de Coffeescript 1.5.0

Coffeescript, langage inspiré de ruby et python se compilant en javascript, sort cette semaine en version 1.5.0. Cette nouvelle version apporte plusieurs nouveautés, tel que l’utilisation de Node comme REPL, ou encore le fait que l’AST de Coffeescript conserve maintenant les numéros de lignes, préparant ainsi l’intégration de source map. Mais la plus importante nouveauté reste la possibilité d’utiliser la programmation lettrée (literate programming). Cette méthode de programmation permet de mélanger facilement du code markdown et du code exécutable, simplifiant ainsi la génération de page tel que celle-ci.

Le coin de la technique

Utiliser Javascript pour faire des applis Gnome

Il est possible maintenant de créer des applications Linux pour Gnome en Javascript. L’équipe de Gnome a conclu que le langage du Web était parfaitement adapté pour les applications desktop et que les récents développements ont montré que les performances étaient au rendez-vous. L’histoire complète (en Anglais) ici : http://www.infoq.com/news/2013/02/javascript_gnome

Sortie de la première version stable de Ruby 2.0

Cette version apporte de nouvelles fonctionnalités au langage (arguments « mots-clé », Enumerable#lazy, Module#prepend…), des facilités (#to_h: convention pour la conversion vers un Hash, %i: un literal pour produire un tableau de symboles, Enumerator#size et Range#size) mais aussi un travail sur le debug (support de DTrace, Tracepoint), la performance (meilleure gestion des interruptions asynchrones…)  et une amélioration générale de la documentation.

Java SE & Java FX en cours de portage sur mobile 

Oracle via un communiqué de Richard Bliarn, architecte sur Java, a annoncé entre autres informations l’actuel implémentation du portage de Java SE ainsi que Java FX sur les plateformes IOS et Android. Le géant de la base de donnée espère ainsi pouvoir reconquérir le monde du mobile avec Java et populariser un peu plus JavaFX. Après tous il existe déjà une version de la VM .Net pour mobile nommé Xamarin.

Java arrivera donc sur un marché du mobile qui commence à être très fragmenté, en effet dans la liste (non-exhaustive) des plateformes disponibles ou prochainement disponibles, nous avons : IOS, Android, Blackberry, Windows mobile, Ubuntu OS, Firefox OS

Il peut alors apparaître comme une solution viable, en remplacement des solutions multi-plateforme à base HTML, JavaScript, CSS, si Oracle étend son support aux autres plateformes. Cependant deux inconvénients se révèlent déjà. Premièrement sous IOS il n’est pas possible d’installer une JVM séparée, ce qui obligera de packager chaque application avec le runtime et donc de créer des installables lourds. Deuxièmement l’OpenJDK et JavaFx sont tout deux sous licences GPLv2, chose problématique sur l’AppStore d’Apple, ou de Microsoft.

Source

Expérience utilisateur

L’utilisabilité est une mesure de qualité.

Jakob Nielsen, un des plus grand experts de l’utilisabilité, livre régulièrement ses analyses. Son dernier article nous dit que, quelque soit, l’industrie l’assurance qualité (QA) est bien meilleure et plus efficace que le contrôle qualité (QC) en particulier quand la qualité fait partie des processus de base. L’utilisabilité est une mesure de qualité et la prendre en compte dés le début de la création du produit a un excellent ROI, bien meilleur qu’une validation des utilisateurs à l’approche de la sortie du produit. Prendre en compte l’utilisabilité implique de mesurer des paramètres de qualité comme la facilité d’apprentissage, l’efficacité d’utilisation et la satisfaction de l’utilisateur. Il rappelle que de mauvais temps de réponses ou les bugs nuisent fortement à qualité de l’expérience utilisateur.

Je reviendrais sur les moyens de mesurer l’expérience utilisateur mais en attendant je vous conseille d’aller de voir du côté de l’excellent blog http://www.measuringusability.com/

Le blog de Luke Wroblewski

Luke Wroblewski, conférencier et auteur de nombreux livres dont Mobile First, est aussi un bloggueur intensif. Sur son blog, il revient régulièrement sur les concepts de Mobile First et de Responsive Design, nous offre des statistiques d’utilisation des mobiles et fait de long résumés des conférience sur l’expérience utilisateur. Ses articles de février 2013 couvrent la conférence An Event Apart d’Atlanta. Très clairement un blog à suivre si vous réaliser des applications sur mobile.

Commentaire

7 réponses pour " Revue de Presse Xebia "

  1. Published by , Il y a 10 ans

    > Il [Java] peut alors apparaître comme une solution viable, en remplacement des solutions multi-plateforme à base HTML, JavaScript, CSS, si Oracle étend son support aux autres plateformes.

    Pas forcément : le prochain JDK inclura JavaFX, et donc, mixera HTML/JS/CSS avec Java.

    Ce qui serait marrant, ce serait un téléphone Java qui serait, pour le coup, à mi-chemin entre Android et FirefoxOS:
    – à la Android car le langage de programmation d’Android est un Java-like avec une JVM-like (Dalvik)
    – à la FirefoxOS car incluant WebKit et pouvant mixer HTML/JS/CSS avec Java.

    D’ailleurs, il y a bien eu un JavaOS http://en.wikipedia.org/wiki/JavaOS qui tournait sur des PF mobiles (AFAIK) comme :
    * ARM
    * PowerPC
    * SPARC
    * StrongARM
    * IA-32

    Mais JavaOS a peut être perdu car prévu dans le cadre d’une approche full Java (« All device drivers are written in Java and executed by the virtual machine »), là où Android a fait des choix plus pragmatiques, éloigné du principe Highlander (« There Can Be Only One »).

  2. Published by , Il y a 10 ans

    « Premièrement sous iOS il n’est pas possible d’installer une JVM séparée »
    Mais après tout, c’est le même problème pour toutes les VMs, comme Xamarin ou Flash/Air…

  3. Published by , Il y a 10 ans

    Tout à fait, ça été soulevé très rapidement par la communauté pour Air Mobile à l’époque et Adobe avait sortie un runtime séparé pour Android.
    Ici l’inconvénient existe toujours mais parait à mon sense encore plus handicapant comparé aux solutions multi-plateformes de type PhoneGap ou Titanium qui elles n’intègrent (quasiment) rien d’autre que le code applicatif.

  4. Published by , Il y a 10 ans

    @Dominique Très intéressante remarque. J’ignorais jusqu’à maintenant que JavaFX était capable d’intégrer du HTML5/CSS3/JavaScript, cependant même si cette solution existe, je suis très réservé face au performance que cela aurait en terme de rendu utilisateur. Quand l’on regarde les solutions actuelles, type phoneGap, qui tournent déjà avec un moteur WebKit natif au téléphone, la fluidité n’est pas optimum sous les téléphones Android. Rajouter dés lors une couche intermédiaire (une JVM en l’occurrence) n’arrangerait pas les choses.

  5. Published by , Il y a 10 ans

    Ca ne serait pas une couche en plus, l’idée c’est plutot d’utiliser Java à la place du JS.
    Language: Java JS
    UI layer: FX HTML

    On peut supposer que l’implementation de FX sur mobile tapperait directement dans la couche OpenGL de l’OS (?).

    Les combinaisons naturelles sont Java + FX et JS + HTML
    mais à noter qu’il semble qu’Oracle propose déjà une solution payante pour mobiles: Java + HTML (sans FX donc), une sorte de PhoneGap où le Java remplace le JS coté client, basée sur une JVM pour ARM.

  6. Published by , Il y a 10 ans

    @Mathieu

    > J’ignorais jusqu’à maintenant que JavaFX était capable d’intégrer du HTML5/CSS3/JavaScript, cependant même si cette solution existe, je suis très réservé face au performance que cela aurait en terme de rendu utilisateur.

    Je pense que le surcout peut être faible, car le rendu est tout simplement délégué à WebKit et la couche Java vraisemblablement négligeable.

    Comme je l’ai écrit: « JavaFX may be the next Adobe AIR » http://www.jroller.com/dmdevito/entry/javafx_may_be_the_next

    En ce sens que, là où Adobe AIR inclut WebKit+ActionScript, le prochain JDK propose WebKit+Java. Et là où le modèle de programmation AIR/Flex proposait MXML+ActionScript, le prochain JDK propose FXML+Java.

    Si Adobe a su offrir une solution performante avec Adobe AIR, je ne vois pas pourquoi Oracle ne pourrait pas faire de même avec Java en y adjoignant (pareillement) WebKit !

    PS : ceci étant dit, Oracle propose même 2 concurrents à Adobe AIR: Java/JavaFX et Avatar, cf. « Oracle looks like to offer 2 alternatives to Flex/AIR » http://www.jroller.com/dmdevito/entry/oracle_looks_like_to_offer

  7. Published by , Il y a 10 ans

    Je me cite: « Ce qui serait marrant, ce serait un téléphone Java qui serait, pour le coup, à mi-chemin entre Android et FirefoxOS »

    D’ailleurs, je viens de découvrir qu’il existe un logiciel de téléphonie audio et vidéo par Internet ainsi qu’un client de messagerie instantanée écrit en Java: Jitsi http://linuxfr.org/news/jitsi-2-0-est-sorti

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.