<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:media="http://search.yahoo.com/mrss/"
> <channel><title>Blog Xebia France &#187; Android</title> <atom:link href="http://blog.xebia.fr/tag/android/feed/" rel="self" type="application/rss+xml" /><link>http://blog.xebia.fr</link> <description>J2EE, Agilité et SOA</description> <lastBuildDate>Wed, 08 Feb 2012 09:23:16 +0000</lastBuildDate> <language>fr</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <copyright>CC BY-NC-ND 2.0 http://creativecommons.org/licenses/by-nc-nd/2.0/fr/</copyright> <managingEditor>blog-france@xebia.com (Xebia France)</managingEditor> <webMaster>blog-france@xebia.com (Xebia France)</webMaster> <ttl>1440</ttl> <image> <url>http://blog.xebia.fr/videos/xebia-podcast.png</url><title>Blog Xebia France</title><link>http://blog.xebia.fr</link> <width>144</width> <height>144</height> </image> <itunes:new-feed-url>http://blog.xebia.fr/feed/podcast/</itunes:new-feed-url> <itunes:subtitle>Les podcasts de Xebia France vous permettent de suivre l&#039;actualité autour de Java, de l&#039;agilité, des technologies Web et bien d&#039;autres. Xebia France est une entreprise spécialisée dans les technologies Java et JEE en environnement agi[...]</itunes:subtitle> <itunes:summary>Les podcasts de Xebia France vous permettent de suivre l&#039;actualité autour de Java, de l&#039;agilité, des technologies Web et bien d&#039;autres. Xebia France est une entreprise spécialisée dans les technologies Java et JEE en environnement agile.</itunes:summary> <itunes:keywords>Xebia, Java, JEE, SOA, Agile, Méthodes, Agiles</itunes:keywords> <itunes:category text="Technology" /> <itunes:category text="Technology"> <itunes:category text="Software How-To" /> </itunes:category> <itunes:category text="Technology"> <itunes:category text="Tech News" /> </itunes:category> <itunes:author>Xebia France</itunes:author> <itunes:owner> <itunes:name>Xebia France</itunes:name> <itunes:email>blog-france@xebia.com</itunes:email> </itunes:owner> <itunes:block>no</itunes:block> <itunes:explicit>no</itunes:explicit> <itunes:image href="http://blog.xebia.fr/videos/xebia-podcast.png" /> <item><title>What&#8217;s Next &#8211; La Keynote d&#8217;Adrian Colyer</title><link>http://blog.xebia.fr/2011/06/06/whats-next-la-keynote-dadrian-colyer/</link> <comments>http://blog.xebia.fr/2011/06/06/whats-next-la-keynote-dadrian-colyer/#comments</comments> <pubDate>Mon, 06 Jun 2011 11:40:26 +0000</pubDate> <dc:creator>Séven Le Mesle</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Non classé]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[CloudFoundry]]></category> <category><![CDATA[social network]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[What's Next]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7956</guid> <description><![CDATA[A l&#8217;occasion de la what&#8217;s next qui se tenait jeudi 26 et vendredi 27 mai au grand rex à paris, le CTO de springsource est venu nous présenter les nouveaux projets et l&#8217;actualité de l&#8217;éditeur. plus précisément adrian colyer a commencé par nous parler des nouveaux défis de l’informatique, avec la mobilité et le développement [...]]]></description> <content:encoded><![CDATA[<div
align="center" style="float:right;margin:5px;"> <a
href="http://blog.xebia.fr/wp-content/uploads/2011/06/spring09_logo.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2011/06/spring09_logo.png" border="0" alt="" /><br
/> </a></div><p> A l&#8217;occasion de la what&#8217;s next qui se tenait jeudi 26 et vendredi 27 mai au grand rex à paris, le CTO de springsource est venu nous présenter les nouveaux projets et l&#8217;actualité de l&#8217;éditeur. plus précisément adrian colyer a commencé par nous parler des nouveaux défis de l’informatique, avec la mobilité et le développement android, les réseaux sociaux, et le cloud. tous ces sujets correspondent aux nouveaux besoins identifiés par springsource. il faut désormais déployer nos applications sur tout type de plateforme allant du site web à l’application mobile native, en s’interfaçant avec des réseaux sociaux comme les api facebook connect et twitter par exemple.</p><h3><a
name="Ledveloppementmobile"></a>Le développement mobile</h3><p><a
href="http://blog.xebia.fr/wp-content/uploads/2011/06/android.jpg" style="float:right;"><img
src="http://blog.xebia.fr/wp-content/uploads/2011/06/android.jpg" alt="android" title="android" width="200" height="150" class="alignright size-full wp-image-7960" /></a><br
/> SpringSource s’intéresse de près à l’essor d’Android et fournit des solutions pour faciliter le développement d’applications pour cette nouvelle plateforme.<br
/> Le projet <a
href="http://www.springsource.org/spring-android" title="Spring-Android" >Spring-Android</a> fournit des templates de clients REST pour faciliter la consommation des services du Backend. Il s’agit donc d’une version optimisée du RestTemplate pour l’environnement Android. Ce template permet de configurer facilement <a
href="http://hc.apache.org/httpcomponents-client-ga/index.html" title="HttpClient 4X" >HttpClient 4.X</a> avec du Marshalling JSON, XML, ou RSS.<br
/> Le deuxième besoin adressé par spring-android concerne l’authentification à des services distants, pour utiliser par exemple l’API d’authentification Twitter, ainsi qu’un service d’authentification propriétaire. Spring-android-auth permet d’une part de persister les informations de connexion et de session dans la base SQLite embarquée par Android, et d’autre part d’établir des sessions web via l’implémentation du protocole OAuth 1 (pour Twitter) et 2 (pour Facebook).<br
/> Adrian Colyer nous a aussi parlé du développement de l’application d’exemple <a
href="http://www.springsource.org/greenhouse" title="GreenHouse" >GreenHouse</a> développée en open source pour démontrer les capacités des projets mobiles de l’éditeur et pour mettre en avant les bonnes pratiques en la matière. GreenHouse repose sur l’utilisation de <a
href="http://www.springsource.org/spring-mobile" title="spring-mobile" >spring-mobile</a>, une extension de spring-mvc pour créer des interfaces web destinées aux SmartPhones, <a
href="http://www.springsource.org/spring-social" title="springsocial" >spring-social</a> pour s’interfacer avec les réseaux sociaux, et spring-android pour l’application cliente Android.<br
/> À vrai dire tous ces projets existent déjà depuis 2010 et ne sont pas vraiment de grandes nouveautés, mais il est tout de même intéressant de noter l’orientation mobile prise par l’éditeur.</p><h3><a
name="Lesrseauxsociaux"></a>Les réseaux sociaux</h3><p><a
href="http://blog.xebia.fr/wp-content/uploads/2011/06/Social-Spring.png" style="float:right;margin:5px;"><img
src="http://blog.xebia.fr/wp-content/uploads/2011/06/Social-Spring.png" alt="Social-Spring" title="Social-Spring" width="132" height="125" class="alignright size-full wp-image-7963" /></a><br
/> Après le nomadisme, Adrian Colyer a continué sa Keynote en nous parlant des nouveaux usages des réseaux sociaux et en mettant en avant le fait qu’aujourd’hui toutes les applications se doivent d’être connectées aux différents réseaux. <a
href="http://www.springsource.org/spring-social|about:blank" title="SpringSocial" >SpringSocial</a> fournit les templates nécessaires pour gérer l’authentification à différents réseaux sociaux et ajouter de nouveaux fournisseurs d’authentification, mais il permet aussi bien sûr d’en utiliser les API. Parmi les API supportées, j’ai retenu :</p><ul><li>Facebook</li><li>Twitter</li><li>LinkedIn</li><li>GitHub</li></ul><p>Tout comme le CTO de SpringSource, nous ne nous attarderons pas trop sur le sujet qui n’est finalement pas une nouveauté. Ce projet adresse principalement les développements grand public qui ne sont définitivement pas majoritaires dans notre industrie où l’application d’entreprise règne en maître. Adrian Colyer s’est permis un raccourci pour associer l’utilisation de ces services tiers aux nouvelles problématiques de stockage avec les NoSQL et big-data.</p><h3><a
name="Lapersistancedesdonnes"></a>La persistance des données</h3><p><a
href="http://blog.xebia.fr/wp-content/uploads/2011/06/nosql-databases.png" style="float:right;margin:5px;"><img
src="http://blog.xebia.fr/wp-content/uploads/2011/06/nosql-databases.png" alt="nosql-databases" title="nosql-databases" width="340" height="187" class="alignright size-full wp-image-7965" /></a><br
/> Les RDBMS n’ont plus l’exclusivité de la persistence des données et SpringSource en a bien conscience. Adrian Colyer nous a donc parlé du projet <a
href="http://www.springsource.org/spring-data|about:blank" title="springdata" >spring-data</a> dont le but est de faciliter l’utilisation des nouveaux services de persistance comme les NoSQL de tous types. SpringData introduit de nouvelles annotations pour gérer le mapping des beans vers les bases non relationnelles. Elles permettent de gérer finement la configuration du stockage sur des systèmes distribués.<br
/> La librairie se découpe en plusieurs sous-projets :</p><ul><li>mapping pour assurer le mapping des beans par des annotations unifiées pour les différents systèmes de données.</li><li>Blob pour les systèmes de stockage sous forme de Blob tel Amazon S3.</li><li>Column Store pour les NoSQL orientés colonne avec Cassandra et HBase.</li><li>Document Store pour les NoSQL orientés document avec un support pour MongoDB et CouchDB.</li><li>Graph pour les bases orientées graphe avec Neo4J.</li><li>Key value store, les bases orientées clé-valeurs, avec le support de Riak, Reddis et Membase.</li><li>Map-Reduce, pour simplifier des frameworks de MapReduce avec le support de Hadoop.</li></ul><p>Voici donc une offrequi s’annonce  largement étoffée par rapport aux templates déjà disponibles pour JDBC et JPA. Dommage que BigTable ne fasse pas partie du lot.</p><h3><a
name="Ledploiementdesapplications"></a>Le déploiement des applications</h3><p>Le CTO de SpringSource nous a ensuite parlé de son nouveau cheval de bataille qu’est le déploiement. Rien de très étonnant avec la nouvelle mode DevOps et l’industrialisation des déploiements. Après les réseaux sociaux et leurs SAAS, il met en avant les architectures PAAS comme étant la solution d’avenir pour résoudre les problèmes de déploiement. Parmi les avantages du Platform As A Service, Adrian Colyer retient :</p><ul><li>La rapidité des déploiements</li><li>Le coût de ce type d’hébergement</li><li>La scalabilité des services</li></ul><p>Toutes ces facilités permettent de réduire le Time to market tout en augmentant la flexibilité métier. Le discours est assez convaincant. Adrian Colyer nous parle ensuite des différents modes de fonctionnement avec le cloud public, le cloud privé et les services mixant cloud privé et public. À partir de là, il nous parle de ce qu’il appelle le micro cloud. En réalité, il s’agit du déploiement d’une architecture PAAS en local sur la machine du développeur. L’avantage étant de tester les développements directement sur une architecture iso-production, pour éviter les fameux bugs de production par exemple.</p><h3><a
name="CloudFoundry"></a>CloudFoundry</h3><p><a
href="http://blog.xebia.fr/wp-content/uploads/2011/06/cloud_foundry_logo-1.png" style=float:right;margin:5px;><img
src="http://blog.xebia.fr/wp-content/uploads/2011/06/cloud_foundry_logo-1.png" alt="cloud_foundry_logo-1" title="cloud_foundry_logo-1" width="235" height="123" class="alignright size-full wp-image-7968" /></a></p><p>Nous abordons ici le gros sujet de la présentation en la personne de l’open PAAS (comprendre PAAS open source), avec le dernier né des services SpringSource <a
href="http://www.cloudfoundry.com/" title="CloudFoundry" >CloudFoundry</a>. Il s’agit d’un service monétisé de distribution et d’hébergement de type PAAS. Il permet d’obtenir son cloud privé ou public, seul le micro cloud est disponible gratuitement.</p><p>La solution fournit différents templates permettant d’intégrer des services applicatifs (frameworks de développement) et des services d’infrastructures (systèmes de gestion des données).<br
/> Le système supporte différents runtimes pour le développement:</p><ul><li>Java</li><li>Ruby</li><li>NodeJS</li></ul><p>Il est aussi possible de choisir parmi différents services d’environnement:</p><ul><li>NoSQL(MongDB, Reddis) ou SQL (MySQL)</li><li>Bus de message (RabbitMQ)</li></ul><p>La solution gère nativement la scalabilité horizontale en définissant le nombre d’instances à lancer et le load-balancing entre les différents frontaux.<br
/> Adrian Colyer nous fait ensuite une petite démonstration avec l’outil vmc qui permet d’administrer le cloud sans mal. Avec ce petit utilitaire en ligne de commande, on peut déployer son application à partir du répertoire projet. Parmi les fonctions de vmc on retrouve :</p><ul><li>Déploiement de l’application</li><li>Définition du nombre d’instances lancées</li><li>Consultation de l’état des différents serveurs</li></ul><p>L’outil possède sans doute d’autres fonctionnalités, mais elles ne faisaient pas partie de la démonstration. vmc semble vraiment facile à utiliser et permet manifestement de monter des architectures complexes très rapidement. Bien sûr ces affirmations sont à prendre avec des pincettes car nous sommes restés dans les clous d’une démonstration, sans aborder par exemple le problème de la configuration des middlewares ou des architectures un peu plus ésotériques. La solution suscite en tout cas l&#8217;intérêt et j’avoue avoir créé mon compte sur le site pendant la présentation.<br
/> Pour finir, Adrian Colyer nous parle d’une nouveauté dans la déclaration des beans Spring, qui permet de définir un profil correspondant à l&#8217;environnement de déploiement. Ainsi, les ressources d&#8217;environnement peuvent être directement déclarées dans la configuration Spring et s’adapter au profil en cours d&#8217;exécution. Par exemple cela permet de déclarer les datasources ou les URLs de connexion aux bus de messages.</p><h3><a
name="Conclusion"></a>Conclusion</h3><p>Au final, il n’y a pas de grande révolution dans les annonces du CTO SpringSource. Le discours est resté très commercial, avec la mise en avant de toutes les solutions déjà au catalogue de l’éditeur. Il n’en est pas moins intérressant d’en tirer les axes de développement de SpringSource, à savoir les réseaux sociaux, le NoSQL et le PAAS. Parmi les termes revenus les plus souvent, nous retiendrons la scalabilité, les applications polyglottes, avec l’entrée de NodeJS sur le devant de la scène. Bref SpringSource, entré dans le giron de VMWare, mise l’essentiel pour ne pas dire tout sur son nouveau service CloudFoundry.</p><ul><li>La présentation sur <a
href="http://www.slideshare.net/adriancolyer/whats-next-paris-adrian-colyer-keynote" title="SlideShare" >SlideShare</a></li><li>Le retour sur le <a
href="http://blog.zenika.com/index.php?post/2011/05/29/What-s-next-%3A-Keynote-d-Adrian-Colyer" title="blog de Zenika" >blog de Zenika</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/06/06/whats-next-la-keynote-dadrian-colyer/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Les annonces de Google IO 2011</title><link>http://blog.xebia.fr/2011/05/13/les-annonces-de-google-io-2011/</link> <comments>http://blog.xebia.fr/2011/05/13/les-annonces-de-google-io-2011/#comments</comments> <pubDate>Fri, 13 May 2011 12:16:49 +0000</pubDate> <dc:creator>Steve Klouvi</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android@Home]]></category> <category><![CDATA[Chrome]]></category> <category><![CDATA[Chromebooks]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google AppEngine]]></category> <category><![CDATA[Google IO]]></category> <category><![CDATA[Google Storage]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[HTML 5]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7717</guid> <description><![CDATA[Cette semaine se tenait à San Francisco la conférence Google I/O pour la 4ème année consécutive. Cette conférence est toujours un évènement riche en annonces sur l&#8217;ensemble des technologies Google, et cette année n&#8217;a pas fait exception à la règle. Nous n&#8217;étions malheureusement pas sur place (la totalité des places de la conférence était écoulée [...]]]></description> <content:encoded><![CDATA[<p>Cette semaine se tenait à San Francisco la conférence <a
href="http://www.google.com/events/io/2011/" title="Google IO" >Google I/O</a> pour la 4ème année consécutive. Cette conférence est toujours un évènement riche en annonces sur l&#8217;ensemble des technologies Google, et cette année n&#8217;a pas fait exception à la règle. Nous n&#8217;étions malheureusement pas sur place (la totalité des places de la conférence était écoulée deux heures après l&#8217;ouverture des ventes). Toutefois, l&#8217;initiative de retransmettre en direct une partie des sessions de la conférence est louable <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Voici donc un petit résumé.</p><div
style="border: dotted 1px #6A205F; background: #F0EDF1; padding:10px 30px;"> Comme pour les années précédentes, les keynotes de la conférence et une partie des sessions seront (ou sont d&#8217;ores et déjà) mises en ligne dans les jours et semaines à venir. Nous ne saurions trop vous conseiller d&#8217;en profiter.</p><ul><li><a
href="http://www.youtube.com/watch?v=OxzucwjFEEs" title="Keynote du mardi 10 Mai" >Keynote du mardi 10 Mai</a></li><li><a
href="http://www.youtube.com/watch?v=MiYND_zvIc0" title="Keynote du mercredi 11 Mai" >Keynote du mercredi 11 Mai</a></li><li><a
href="http://www.youtube.com/user/GoogleDevelopers" title="Chaine YouTube" >Chaine YouTube</a></li></ul></div><style>table {border: hidden; border-collapse: collapse; font-size: small;}
tr, th, td {border: dotted 1px #6A205F; padding: 5px;}
th {background: #F0EDF1;}
td {text-align: center;}</style><h3><a
name="GoogleAppEngine"></a>Google AppEngine 1.5</h3><p>Google livre une nouvelle version de sa plateforme de cloud AppEngine. On notera l&#8217;arrivée d&#8217;une nouvelle API de file de traitement en mode Producteur/Consommateur, les Pull Queues. Les consommateurs peuvent être des composants faisant partie de votre application AppEngine ou externes ; le service fournit une API REST et des librairies pour Java, Python, .NET, PHP et Ruby.</p><p>Cette version introduit également un nouveau type d&#8217;instance en liaison directe avec la nouvelle API de file de traitement, les instances « <em>Backend</em> ». Les traitements effectués sur une instance de type <em>Backend</em> ne sont pas soumis aux restrictions standards (comme par exemple la limite de durée à 30 secondes). Il est également possible de choisir une classe parmi 4 proposées pour ces instances ; ce qui offre plus de contrôle sur le dimensionnement de l&#8217;architecture de déploiement. Une des autres options de configuration est le mode de rétention de l&#8217;instance Backend : <em>Resident</em>, son arrêt et son démarrage sont alors <strong>manuels</strong> ; ou <em>Dynamic,</em> les instances sont alors automatiquement démarrées pour traiter les demandes et sont arrêtées après 30 secondes d&#8217;inactivité.</p><p>Voici un tableau récapitulatif, pour vous donner une idée des tarifs de ces Backends:</p><table><tr><th> Backend</th><th> Description</th><th> Tarif horaire</th><th> Tarif journalier</th><th> Tarif mensuelle (30j)</th></tr><tr><th> Classe B1</th><td> CPU 600 MHz<br
/> Ram 128 Mo</td><td>0,08 $</td><td>1,92 $</td><td>57,60 $</td></tr><tr><th> Classe B2 <em>(classe par défaut)</em></th><td> CPU 1,2 GHz<br
/> Ram 256 Mo</td><td>0,16 $</td><td>3,84 $</td><td>115,20 $</td></tr><tr><th> Classe B4</th><td> CPU 2,4 GHz<br
/> Ram 512 Mo</td><td>0,32 $</td><td>7,68 $</td><td>230,40 $</td><tr><th> Classe B8</th><td> CPU 4,8 GHz<br
/> Ram 1024 Mo</td><td>0,64 $</td><td>15,36 $</td><td>460,80 $</td></tr></table><p>Autre annonce importante, la technologie quittera le statut de <strong>preview</strong> lors du 2ème semestre de cette année. Le programme « <em>AppEngine for Business</em> » s&#8217;arrête et nombre des fonctionnalités est ou sera réintégré dans AppEngine comme : les bases SQL hébergées, les engagements sur les niveaux de service, l&#8217;utilisation de SSL avec des noms de domaine externes, etc. Une première version du SLA est consultable <a
href="http://code.google.com/appengine/sla.html" title="ici" >ici</a>. Autre modification importante, <a
href="http://www.google.com/enterprise/appengine/appengine_pricing.html" title="le modle tarifaire" >le modèle tarifaire</a> évoluera également : certaines APIs, dont la consommation est évaluée en temps CPU, seront dorénavant facturées au nombre d&#8217;appels. Tout cela conforte l&#8217;engagement de Google pour cette technologie.</p><h3><a
name="RapprochementAndroidGWTAppEngi"></a>Rapprochement Android / GWT / AppEngine</h3><p>La future version 2.4 du plugin Eclipse de Google (actuellement en bêta) permettra un rapprochement entre les technologies Android, AppEngine et GWT. Le plugin autorisera la création de projets « connectés », et générera automatiquement le code de plomberie technique nécessaire pour effectuer les appels aux services GWT depuis une application Android.</p><p>Il y a également des nouveautés du côté de l&#8217;API Cloud to Device (<a
href="http://code.google.com/android/c2dm/index.html" title="CD2M" >CD2M</a>) qui est encore dans l&#8217;incubateur Google. Sa mise en œuvre sera simplifiée par une intégration au sein même de Google AppEngine. Pour rappel, le but de l&#8217;API Cloud to Device est de remplacer les mécanismes de polling que l&#8217;on pourrait développer directement au niveau applicatif par un système de notification push. L&#8217;intégration de cette fonctionnalité directement au cœur du système permet de mutualiser les notifications, et rend l&#8217;ensemble du service plus efficace et moins consommateur en bande passante et en énergie. Un exemple concret d&#8217;utilisation est l&#8217;extension ChromeToPhone qui permet de diriger vers votre Smartphone Android une page en cours de visualisation dans Chrome.</p><p>Avec ce rapprochement, c&#8217;est tout un éco-système autour de Google AppEngine qui se dessine peu à peu.</p><h3><a
name="ChromeHTML"></a>Chrome / HTML 5</h3><p>Le navigateur de Google se voit doté de fonctionnalités supplémentaires intéressantes comme la reconnaissance vocale. Autre annonce marquante, l&#8217;équipe de développement signale que l&#8217;optimisation des performances reste un chantier de premier plan. Toutefois, le focus sera mis sur l&#8217;accélération matérielle et non plus sur le moteur JavaScript. Enfin, on peut rappeler le lancement mondial du <a
href="https://chrome.google.com/webstore" title="Chrome Web Store" >Chrome Web Store</a> accessible dans plus d&#8217;une quarantaine de langues.</p><h3><a
name="NouvellesversionsAndroid"></a>Nouvelles versions Android</h3><p>Cette conférence a été l&#8217;occasion pour Google d&#8217;annoncer 2 versions majeures de la plateforme Android. La version HoneyComb 3.1 et la très attendue version 4 (?!) Ice Cream Sandwich qui va permettre de regrouper la version téléphone et la déclinaison tablette du système d&#8217;exploitation. La plus importante nouveauté de ces versions est sans doute l&#8217;API Open Accessory qui permet aux appareils Android d&#8217;utiliser les appareils connectés via USB ou de se comporter comme un hôte USB (le mode hôte USB n&#8217;est accessible que pour HoneyComb).</p><h3><a
name="AndroidHome"></a>Android@Home</h3><p>Le framework Android@Home permet au système d&#8217;exploitation d&#8217;être utilisé pour la domotique. Votre appareil Android devient la commande centrale pour piloter les appareils sans fil de votre domicile ; les équipes ont également développé un nouveau protocole pour les appareils sans fil non connectés au réseau Wifi. Une démonstration du projet Tungsten permet par exemple de diffuser en streaming de la musique dans l&#8217;ensemble de votre domicile.</p><h3><a
name="GoogleStorage"></a>Google Storage</h3><p><a
href="http://code.google.com/apis/storage/" title="Google Storage" >Google Storage</a>, le service de stockage en ligne de haute disponibilité et accessible via une API REST. Bien qu&#8217;encore dans l&#8217;incubateur, il est maintenant accessible à tous, dispose d&#8217;un quota gratuit d&#8217;utilisation (jusqu&#8217;à la fin de l&#8217;année) et propose 2 zones géographiques de stockage les états-unis et l&#8217;Europe.</p><h3><a
name="Chromebooks"></a>Chromebooks</h3><p>Google a annoncé la prochaine sortie de 2 nouveaux « <em>NetBook</em> » utilisant le système d&#8217;exploitation Chrome OS. L&#8217;originalité vient l&#8217;offre de commercialisation puisqu&#8217;ils seront disponible à la vente de manière standard, mais aussi dans le cadre d&#8217;une souscription étudiante ou professionnelle pour respectivement $20 et $30. L&#8217;offre inclue également la mise à jour matérielle.</p><h3><a
name="LemotdelafinenattendantGoogleI"></a>Le mot de la fin &#8230; en attendant Google I/O 2012</h3><p>C&#8217;est ici que s&#8217;achève notre petit tour d&#8217;horizon de cette très généreuse conférence. Avec plus de 100 sessions réparties sur 2 jours, il y a fort à parier que nous avons « <em>oublié</em> » d&#8217;aborder certains sujets. Mais, j&#8217;espère vous avoir donné l&#8217;envie de parcourir plus en détail les annonces, vidéos et autres matériaux de cette conférence.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/05/13/les-annonces-de-google-io-2011/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Rétrospective de notre XKE d&#8217;avril</title><link>http://blog.xebia.fr/2011/04/08/retrospective-de-notre-xke-d-avril/</link> <comments>http://blog.xebia.fr/2011/04/08/retrospective-de-notre-xke-d-avril/#comments</comments> <pubDate>Fri, 08 Apr 2011 19:27:32 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Divers]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[cryptographie]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[Flex Mobile]]></category> <category><![CDATA[iOS]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[JQuery Mobile]]></category> <category><![CDATA[PKI]]></category> <category><![CDATA[urbanisation]]></category> <category><![CDATA[XKE]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7392</guid> <description><![CDATA[Comme chaque premier jeudi du mois, les consultants Xebia se sont réunis hier pour le XKE (Xebia Knowledge Exchange). Cette journée fut dédiée au développement mobile. Après un échange sur l&#8217;actualité, 4 groupes se sont formés autour de thèmes forts : Android, animé par Steve Klouvi Iphone, animé par Amin Fathallah Flex Mobile, animé par Julien [...]]]></description> <content:encoded><![CDATA[<p>Comme chaque premier jeudi du mois, les consultants Xebia se sont réunis hier pour le XKE (Xebia Knowledge Exchange).</p><p>Cette journée fut dédiée au développement mobile. Après un échange sur l&#8217;actualité, 4 groupes se sont formés autour de thèmes forts :</p><ul><li><strong>Android</strong>, animé par <a
href="http://blog.xebia.fr/author/sklouvi/">Steve Klouvi</a></li><li><strong>Iphone</strong>, animé par <a
href="http://blog.xebia.fr/author/afathallah/">Amin Fathallah</a></li><li><strong>Flex Mobile</strong>, animé par Julien Buret</li><li><strong>JQuery Mobile</strong>, animé par <a
href="http://blog.xebia.fr/author/akinsella/">Alexis Kinsella</a></li></ul><p>Suite à une brève introduction aux différentes technologies challengées, les xebians ont développé une application mobile en <em>Pair Programming</em> à l&#8217;aide de l&#8217;api JSON du blog de Xebia, proposant des fonctionnalités de listing des auteurs, des categories et des articles, ainsi que des fonctionnalités telles que la recherche. Certaines solutions telles que Windows Phone 7, Palm OS, BlackBerry ou encore BKRender n&#8217;ont pu être défendues lors de cette journée faute de participants pour ces challengers, ce qui n&#8217;est que partie remise.</p><p>Une restitution, suivie d&#8217;un débat a permis aux xebians de faire le point sur les différentes solutions testées, et de mettre en avant les forces et faiblesses de chacune des technologies. </p><p>La journée s&#8217;est achevée sur deux sessions parallèles :</p><ul><li><strong><a
href="http://blog.xebia.fr/2008/04/10/urbanisation-pour-les-nuls/" title="L'urbanisation" >L&#8217;urbanisation</a></strong> présenté par <a
href="http://blog.xebia.fr/author/njozwiak/">Nicolas Jozwiak</a>.</li><li><strong>Les bases de la cryptographie et des infrastructures à clés publiques</strong> présenté par <a
href="http://blog.xebia.fr/author/dgalichet/">David Galichet</a>.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/04/08/retrospective-de-notre-xke-d-avril/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/</link> <comments>http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/#comments</comments> <pubDate>Tue, 22 Mar 2011 09:00:25 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Harmony]]></category> <category><![CDATA[MDA]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[OpenJDK]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7271</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Apache Harmony: encore des couacs Agilité Rien ne va plus Le coin de la technique Sortie de MongoDB 1.8 Actualité éditeurs / SSII Apache Harmony: encore des couacs On se souvient des déboires récents du projet Apache Harmony: en opposition [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/#ApacheHarmonyencoredescouacs">Apache Harmony: encore des couacs</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/#Riennevaplus">Rien ne va plus</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/#SortiedeMongoDB">Sortie de MongoDB 1.8</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="ApacheHarmonyencoredescouacs"></a>Apache Harmony: encore des couacs</h4><p>On se souvient des déboires récents du projet <a
href="http://harmony.apache.org/" title="Apache Harmony" >Apache Harmony</a>: en <a
href="http://www.apache.org/jcp/sunopenletter.html" title="opposition frontale" >opposition frontale</a> à Sun puis à Oracle depuis 2007 au sujet du <a
href="http://en.wikipedia.org/wiki/Technology_Compatibility_Kit" title="TCK" >TCK</a>, l&#8217;ambitieux projet d&#8217;implémentation Java sous licence Apache a vécu une année 2010 plutôt difficile. Jugez-en plutôt: en août 2010, Harmony fait les frais du <a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/#OraclepoursuitGooglepourviolat" title="procès fait à Google par Oracle" >procès fait à Google par Oracle</a> pour violation de brevets Java au sein de la plateforme Android; la Fondation Apache <a
href="https://blogs.apache.org/foundation/entry/read_beyond_the_headers" title="a eu beau clamer n'y être pour rien" >a eu beau clamer n&#8217;y être pour rien</a>, le mal était fait. En octobre, comme nous l&#8217;avions signalé <a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#IBMrejointleprojetOpenJDK" title="ici même" >ici même</a>, c&#8217;est <a
href="http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/" title="au tour d'IBM de quitter le navire" >au tour d&#8217;IBM de quitter le navire</a> pour rejoindre le très officiel <a
href="http://en.wikipedia.org/wiki/OpenJDK" title="OpenJDK" >OpenJDK</a>, projet concurrent soutenu par Oracle; un mois plus tard, c&#8217;est au tour d&#8217;Apple de <a
href="http://www.infoworld.com/d/developer-world/apple-joins-oracles-openjdk-project-011" title="rejoindre les rangs d'OpenJDK" >rejoindre les rangs d&#8217;OpenJDK</a>, fragilisant encore davantage Harmony. Puis enfin, après une passe d&#8217;armes que nous avions retranscrite <a
href="http://blog.xebia.fr/2010/10/26/revue-de-presse-xebia-182/#DurififiauJCP" title="ici" >ici</a> puis <a
href="http://blog.xebia.fr/2010/11/16/revue-de-presse-xebia-185/#OracleetApachedeleaudanslegaz" title="là" >là</a>, nous vous <a
href="http://blog.xebia.fr/2010/12/14/revue-de-presse-xebia-189/#JavaCommunityProcesslaFondatio" title="annoncions" >annoncions</a> avec regret, en décembre dernier, que la Fondation Apache, en représailles face à l&#8217;immobilisme d&#8217;Oracle, venait de <a
href="https://blogs.apache.org/foundation/entry/the_asf_resigns_from_the" title="claquer la porte" >claquer la porte</a> du <a
href="http://en.wikipedia.org/wiki/Java_Community_Process" title="JCP" >JCP</a>.</p><p>Et voilà que la semaine dernière, Tim Ellison, président du PMC (<em>Project Management Committee</em>) du projet Apache Harmony, <a
href="http://www.infoq.com/news/2011/03/apache-harmony" title="annonce sa démission" >annonce sa démission</a>, en prétextant le manque de plus en plus cruel d&#8217;effectifs et en posant même clairement la question de l&#8217;opportunité de déplacer le projet vers le tant redouté <a
href="http://attic.apache.org/" title="mouroir des projets Apache" >mouroir des projets Apache</a>.</p><p>Apache Harmony a-t-il un avenir? On peut en effet en douter. Lors de la conférence « TheServerSide Java Symposium 2011 » à Las Vegas mercredi dernier, James Gosling n&#8217;a pas mentionné directement Harmony, mais <a
href="http://www.infoworld.com/d/application-development/gosling-oracles-self-interest-requires-good-java-stewardship-727" title="a laissé entendre" >a laissé entendre</a> qu&#8217;Oracle avait fait quelques gestes: en direction de la communauté d&#8217;une part, avec <a
href="http://www.infoworld.com/d/application-development/java-ee-7-specification-gets-unanimous-approval-718" title="ladoption rcente des spcifications de Java EE 7" >l&#8217;adoption récente des spécifications de Java EE 7</a>; et d&#8217;autre part en direction de ses concurrents, en enterrant la hache de guerre avec IBM et Apple.</p><p>Ces gestes, bien entendu, auront un prix. Or les intentions d&#8217;Oracle face à Google ne sont pas claires. Si <a
href="http://www.infoworld.com/d/application-development/android-app-builders-unfazed-oracle-lawsuit-030" title="les développeurs Android restent imperturbables" >les développeurs Android restent imperturbables</a>, il semblerait bien qu&#8217;Oracle n&#8217;ait pas dit son dernier mot: Adam Messinger, qui s&#8217;exprimait aussi pendant la même conférence, a souligné qu&#8217;Oracle <a
href="http://www.infoworld.com/d/application-development/oracle-dont-count-out-java-in-the-mobile-space-788" title="voyait en grand lavenir de Java ME" >voyait en grand l&#8217;avenir de Java ME</a>; en ligne de mire, on le devine, se trouve la plateforme Android prônée par Google.</p><p>Dans ce paysage assombri par les enjeux stratégiques entre poids lourds de l&#8217;informatique, et quelle que soit l&#8217;issue du différend qui oppose Oracle à Google, Harmony apparaît de plus en plus comme le prix à payer pour que l&#8217;on revienne enfin&#8230; à l&#8217;harmonie.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Riennevaplus"></a>Rien ne va plus</h4><p>Il y a des semaines comme ça&#8230; tout allait bien quand 3 annonces coup sur coup font voler en éclat nos plus profondes convictions. Imaginez qu&#8217;enfant on vous apprenne que le Père Noël&#8230; Chut ! Ce n&#8217;est pas notre rôle de vous le révéler. Toujours est-il que 3 articles sont venus nous secouer récemment. L&#8217;agilité que l&#8217;on vous vante tant ? Et bien, non, finalement, ce n&#8217;est pas le remède miracle. Et Java, notre langage tant aimé ? Finalement, il nous ralentirait plus qu&#8217;autre chose ! Mais cela se comprend, c&#8217;est la notion même de programmation objet qui ne sert plus à rien ! Voyons de quoi il retourne.</p><ul><li>A la conférence « TheServerSide Java Symposium 2011 », Jon Kern a donné une présentation dont <a
href="http://javasymposium.techtarget.com/html/agile.html#JKernAgile" title="la trame" >la trame</a> était que l&#8217;agilité n&#8217;est pas le remède miracle à tous les projets et toutes les situations. Non ?! Et bien si. Il s&#8217;en explique d&#8217;ailleurs dans <a
href="http://www.theserverside.com/news/2240033314/QA-Bogus-experts-fuel-the-backlash-against-Agile-development" title="une interview" >une interview</a> donnée quelques jours plus tôt: pour lui, passer à l&#8217;agilité requiert un changement dans les mentalités, dans tout le processus projet de l&#8217;entreprise. Il évoque aussi la possibilité d&#8217;être flexible dans la mise en place de l&#8217;agilité mais semble malgré tout d&#8217;accord avec John Clifford (dont <a
href="http://blog.xebia.fr/2011/02/01/revue-de-presse-xebia-196/#LesdangersquiguettentScrum" title="nous vous parlions rcemment" >nous vous parlions récemment</a>) qui mettait en garde contre l&#8217;application de seulement quelques morceaux choisis de Scrum et le risque de se croire alors agile.</li><li>Java, notre beau langage, ferait souffrir les entreprises. Il serait trop verbeux, offrirait trop de choix et les projets seraient coûteux et complexes à maintenir. C&#8217;est développez.com qui nous <a
href="http://www.developpez.com/actu/29599/Java-un-choix-couteux-pour-les-entreprises-Oui-d-apres-un-expert-qui-recommande-de-capitaliser-sur-les-briques-open-source/" title="rapporte les propos" >rapporte les propos</a> de David Duquenne, DG du groupe <a
href="http://technologies.openwide.fr" title="Open Wide Technologies" >Open Wide Technologies</a>. Mais finalement, plus que le langage lui-même, il semble que ce soit l&#8217;utilisation qui en est faite, à travers l&#8217;incorporation à tort et à travers de multitudes de composants open-source dont on ne maîtrise ni le développement, ni les licences, qui soit à surveiller. Quelques pistes sont évoquées pour éviter ces écueils: l’utilisation de Frameworks (ceux de Open Wide ?!), l&#8217;intégration continue, le recours aux approches agiles ou à de nouveaux paradigmes tels que le MDA ou la programmation fonctionnelle.</li><li>La programmation fonctionnelle, parlons-en justement. A l&#8217;université de Carnegie Mellon (Pittsburgh), elle remplacera en 1ère année l&#8217;apprentissage de la programmation orientée objet, cette dernière devenant optionnelle plus loin dans le cursus. Est-ce un choix raisonnable ? <a
href="http://www.infoq.com/news/2011/03/oop-out-at-cmu" title="Larticle dInfoQ" >L&#8217;article d&#8217;InfoQ</a> qui nous apprend la nouvelle ne semble pas complètement d&#8217;accord.</li></ul><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="SortiedeMongoDB"></a>Sortie de MongoDB 1.8</h4><p><a
href="http://www.mongodb.org/" title="MongoDB" >MongoDB</a> a annoncé la sortie de la version 1.8 de la base de données NoSQL. La version précédente &#8212; 1.6 &#8212; datait d&#8217;août 2010. Cette nouvelle version ajoute plusieurs fonctionnalités, corrige quelques bugs et améliore nettement certaines fonctionnalités existantes.</p><p>Les release notes se trouvent <a
href="http://www.mongodb.org/display/DOCS/1.8+Release+Notes" title="ici" >ici</a>. La version 2.5 du driver Java de MongoDB a par ailleurs été publiée la semaine dernière.</p><p>La nouveauté la plus attendue et la plus plébiscitée par les utilisateurs de MongoDB est la <a
href="http://www.mongodb.org/display/DOCS/Journaling" title="journalisation" >journalisation</a>: grâce à l&#8217;écriture d&#8217;un journal des transactions, la récupération après un crash sera beaucoup plus rapide, et la pérennité des transactions sera renforcée au sein du système de stockage.</p><p>L&#8217;activation de cette option se fait uniquement au démarrage en ajoutant l&#8217;option « <code>--journal</code> » à la commande de démarrage. Les fichiers de journalisation seront alors stockés quotidiennement sous le répertoire « <code>journal</code> ». Suite à un arrêt normal du système, ceux-ci seront automatiquement purgés; suite à un crash, en revanche, au redémarrage de MongoDB l&#8217;ensemble des transactions décrites dans ces fichiers sera re-exécuté. L&#8217;option « <code>repair</code> » ne sera plus nécessaire.</p><p>Par ailleurs le <em><a
href="http://www.mongodb.org/display/DOCS/Sharding+Introduction" title="sharding" >sharding</a></em>, fonctionnalité introduite dans la version 1.6, a bénéficié d&#8217;importantes améliorations internes qui permettront une meilleure performance et une meilleure reprise sur erreur, même si ces changements ne seront pas forcément ressentis par tous les utilisateurs.</p><p>Et enfin, parmi les autres fonctionnalités, on peut citer le support de l&#8217;<a
href="http://www.mongodb.org/display/DOCS/Replica+Set+Authentication" title="authentification au niveau des jeux de répliques (replica sets)" >authentification au niveau des jeux de répliques (<em>replica sets</em>)</a>, des nouveautés liées aux index, ou encore la recherche spatiale &laquo;&nbsp;sphérique&nbsp;&raquo;: jusqu&#8217;alors plate, la Terre est enfin redevenue ronde pour MongoDB!</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de presse</title><link>http://blog.xebia.fr/2011/01/18/revue-de-presse-194/</link> <comments>http://blog.xebia.fr/2011/01/18/revue-de-presse-194/#comments</comments> <pubDate>Tue, 18 Jan 2011 06:53:49 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Non classé]]></category> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Hudson]]></category> <category><![CDATA[Jenkins]]></category> <category><![CDATA[Tomcat]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6673</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Hudson devient Jenkins Tomcat 6.0.30 et Tomcat 7 devient stable Le coin de la technique Hors-série Linux Magazine &#171;&#160;Développement Android&#160;&#187; Actualité éditeurs / SSII Hudson devient Jenkins La nouvelle n’a sans doute pas échappé aux plus avertis d’entre nous, Hudson, [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/18/revue-de-presse-194/#HudsondevientJenkins">Hudson devient Jenkins</a></li><li><a
href="http://blog.xebia.fr/2011/01/18/revue-de-presse-194/#TomcatetTomcatdevientstable">Tomcat 6.0.30 et Tomcat 7 devient stable</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/18/revue-de-presse-194/#HorssrieLinuxMagazineDveloppem">Hors-série Linux Magazine &laquo;&nbsp;Développement Android&nbsp;&raquo;</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="HudsondevientJenkins"></a>Hudson devient Jenkins</h4><p>La <a
href="http://kohsuke.org/bye-bye-hudson-hello-jenkins/" title="nouvelle" >nouvelle</a> n’a sans doute pas échappé aux plus avertis d’entre nous, <strong>Hudson</strong>, le célèbre serveur d’intégration continue, va être renommé en <strong>Jenkins</strong>. Ce changement est motivé par la volonté de se protéger contre d’éventuels blocages de la part d’Oracle sur les développements du projet. En effet Hudson a été créé par Kohsuke Kawaguchi, alors qu’il travaillait chez Sun, depuis racheté par Oracle qui juridiquement possède la <em>marque</em> Hudson. Ce dernier point donne la possibilité à Oracle de bloquer ce projet sous ce nom et le renommage permettra de se défaire complètement de cette contrainte.</p><p><a
href="http://www.hudson-labs.org/content/hudsons-future" title="Andrew Bayer" >Andrew Bayer</a> décrit les différentes étapes qui vont suivre cette annonce:</p><ul><li>déposé le nom, créer les comptes twitter&#8230;</li><li>migrer les infrastructures du projet en-dehors de serveurs Oracle et renommage des différents composants.</li><li>Andrew Bayer, Kohsuke Kawaguchi et peut-être Winston Prakash, qui a repris le projet chez Oracle, formeront une gouvernance par intérim, le temps d’organiser des élections.</li></ul><p>Tout en se détachant de l’emprise d’Oracle, il y a la volonté que l’entreprise reste actif dans le projet. Cet épisode souligne malgré tout la méfiance de la communauté envers Oracle.</p><h4><a
name="TomcatetTomcatdevientstable"></a>Tomcat 6.0.30 et Tomcat 7 devient stable</h4><p>Après plusieurs versions correctives de la bêta, Mark Thomas a officialisé la <a
href="http://www.tomcatexpert.com/blog/2011/01/14/apache-tomcat-706-released-first-stable-build" title="version 7.0.6" >version 7.0.6</a> du célèbre serveur Java, comme la première version stable de Tomcat 7. Avec cette annonce <a
href="http://tomcat.apache.org/" title="Tomcat" >Tomcat</a> rejoint Glassfish 3 dans le cercle fermé des implémentations stables de servlet 3.0.  Parmi les nouveautés de cette version, on notera, la présence d’une nouvelle distribution binaire spécialisée pour embarquer le serveur dans d’autres applications. Sans doute une façon de répondre à la forte adoption de Jetty dans ce domaine. Cette version corrige surtout les derniers bugs majeurs comme une importante fuite mémoire dans le connecteur NIO. Elle contient donc une longue liste de corrections accompagnées de menues améliorations (<a
href="http://tomcat.apache.org/tomcat-7.0-doc/changelog.html" title="Voir le changelog" >Voir le changelog</a>).<br
/> Notez enfin, la sortie d’une version corrective de <a
href="http://www.tomcatexpert.com/blog/2011/01/13/apache-tomcat-6030-released" title="Tomcat 6" >Tomcat 6</a> corrigeant là encore un grand nombre de bugs(<a
href="http://tomcat.apache.org/tomcat-6.0-doc/changelog.html" title="Voir le changelog" >Voir le changelog</a>).</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="HorssrieLinuxMagazineDveloppem"></a>Hors-série Linux Magazine &laquo;&nbsp;Développement Android&nbsp;&raquo;</h4><p>Dans revue de presse, il y a &laquo;&nbsp;presse&nbsp;&raquo;. Et il est vrai que nous ne parlons pas souvent de la presse classique. Vous savez, celle faite de papier plutôt que de HTML. Celle à qui il manque les hyperliens mais qui en revanche ne tombe jamais à court de batterie. Celle qui sort, début janvier, un magazine labellisé &laquo;&nbsp;février/mars&nbsp;&raquo;&#8230; <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> Et c&#8217;est justement le cas du <a
href="http://www.gnulinuxmag.com/index.php/2011/01/07" title="Linux Magazine Hors-série spécial développement Android" >Linux Magazine Hors-série spécial développement Android</a> sorti récemment. Mis au courant <a
href="http://www.frandroid.com/55775/gnulinux-magazine-hors-serie-entierement-consacre-au-developpement-android" title="par FrAndroid" >par FrAndroid</a>, nous nous sommes rués en kiosque.<br
/> Et c&#8217;est du costaud ce hors-série! Sur 80 pages, <a
href="http://www.prados.fr/" title="Philippe Prados" >Philippe Prados</a> nous fait découvrir comment réaliser une application Android qui s&#8217;intègre dans le système de contact et se synchronise sur un serveur LDAP distant. Pour tout vous dire, il y a du travail.<br
/> Vous aurez l&#8217;occasion de revenir sur les notions spécifiques d&#8217;Android que sont les termes d&#8217;activités, de Content Provider, d&#8217;Intent&#8230; Les <a
href="http://fr.wikipedia.org/wiki/Communication_inter-processus" title="IPC" >IPC</a>, souvent peu abordés sur Android sont aussi expliqués. Ainsi, <a
href="http://android.git.kernel.org/?p=platform/packages/apps/Contacts.git" title="lapplication contacts" >l&#8217;application contacts</a> classique d&#8217;Android, se trouvera <em>augmentée</em> d&#8217;un mécanisme d&#8217;aller-retours avec l&#8217;application présentée qui fournira le contenu LDAP, lui-même obtenu depuis un fournisseur de contenu. L&#8217;intégration à la recherche globale Android est aussi de la partie, ainsi qu&#8217;un <em>wizard</em> de création de compte pour le fournisseur d&#8217;authentification nécessaire à la synchronisation des contacts avec LDAP.<br
/> Et encore, tout ceci n&#8217;est qu&#8217;un petit aperçu de ce qui vous attend dans le magazine. L&#8217;auteur a essayé un maximum de s&#8217;intégrer dans le système, et il semble que bien souvent, c&#8217;est grâce à la disponibilité des sources des applications standards qu&#8217;il a pu comprendre certains mécanismes peu documentés.<br
/> Un petit grief tout de même: la lecture est assez ardue et il faut attendre la toute fin (page 73) pour savoir où se procurer les sources&#8230; Et se rassurer en prenant connaissance de leur disponibilité qui n&#8217;est pas clairement annoncée dès le début. Bref, une lecture inestimable pour qui veut produire plus qu&#8217;une banale application et s&#8217;intégrer complètement au système de Google.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/01/18/revue-de-presse-194/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/01/11/revue-de-presse-xebia-193/</link> <comments>http://blog.xebia.fr/2011/01/11/revue-de-presse-xebia-193/#comments</comments> <pubDate>Tue, 11 Jan 2011 11:51:13 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Amazon]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Gradle]]></category> <category><![CDATA[Grails]]></category> <category><![CDATA[Groovy]]></category> <category><![CDATA[Jackson]]></category> <category><![CDATA[JRuby]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6610</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Amazon Appstore Jackson 1.7 Le coin de la technique Ecosystème Groovy/Grails Version majeure de JRuby : 1.6 en release candidate Actualité éditeurs / SSII Amazon Appstore Amazon a annoncé le lancement du portail Appstore Developper &#8211; https://developer.amazon.com/ &#8211; qui ouvre [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/11/revue-de-presse-xebia-193/#AmazonAppstore">Amazon Appstore</a></li><li><a
href="http://blog.xebia.fr/2011/01/11/revue-de-presse-xebia-193/#Jackson">Jackson 1.7</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/11/revue-de-presse-xebia-193/#EcosystmeGroovyGrails">Ecosystème Groovy/Grails</a></li><li><a
href="http://blog.xebia.fr/2011/01/11/revue-de-presse-xebia-193/#VersionmajeuredeJRubyenrelease">Version majeure de JRuby : 1.6 en release candidate</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="AmazonAppstore"></a>Amazon Appstore</h4><p>Amazon a annoncé le lancement du portail Appstore Developper  &#8211; <a
href="https://developer.amazon.com/" title="httpsdeveloperamazoncom" >https://developer.amazon.com/</a> &#8211; qui ouvre la voie au prochain Appstore pour Android (à terme d&#8217;autres plateformes seront peut-être aussi supportées). Amazon se lance pour avoir sa part du gâteau dans le marché des applications mobiles. Contrairement à Google, qui laisse la liberté de soumettre n&#8217;importe quelle application et de la vendre, Amazon vérifiera si le contenu est approprié et validera selon des standards de qualité minimale. Ce modèle se rapproche de celui d&#8217;Apple pour l&#8217;AppStore, par exemple le contenu très explicite pour adultes seront interdits.</p><p>Ce processus de validation affectera le délai de mise en vente, mais Amazon promet de ne pas dépasser une semaine pour le délai d&#8217;approbation des applications. D&#8217;après Amazon, l&#8217;objectif principal du filtre est d&#8217;améliorer la qualité des applications qu&#8217;on peut acheter sur le portail en offrant un minimum de garanties aux utilisateurs.</p><p>La différence majeure par rapport à ses concurrents, Google et Apple,  est le système de prix qui sera similaire à celui des livres et restera sous le contrôle d&#8217;Amazon. Les développeurs pourront choisir le prix de départ de l&#8217;application dans une liste, mais celui-ci variera dans le temps, pour s&#8217;adapter au marché et afin de rentabiliser au maximum ses ventes et bénéfices. L&#8217;un des aspects le plus attractif pour le développeur est la façon dont Amazon propose aux utilisateurs des produits auxquels ils pourront être intéressés grâce à leur système de suivi.</p><p>Concernant les prix du service, la première année est gratuite pour le développeur et passe ensuite à 99 dollars / an. L&#8217;Appstore Amazon ouvrira d&#8217;abord aux Etats-Unis, et même si aucune date d&#8217;ouverture n&#8217;a été annoncée, tous les yeux sont rivés vers cet été 2011.</p><h4><a
name="Jackson"></a>Jackson 1.7</h4><p>Quelques mois après la sortie de la <a
href="http://blog.xebia.fr/2010/09/14/revue-de-presse-xebia-176/#Jackson" title="version 1.6" >version 1.6</a>, cette nouvelle mouture apporte quelques petites <a
href="http://blog.xebia.fr/2010/09/14/revue-de-presse-xebia-176/#Jackson" title="évolutions techniques" >évolutions techniques</a> et elle est totalement compatible avec la version précédente. La grande nouveauté vient de l’<a
href="http://wiki.fasterxml.com/JacksonFeatureModules" title="abstraction des modules" >abstraction des modules</a> qui facilite l’ajout de serializers/deserializers. Pour cela il suffira d’étendre la classe abstraite <code>Module</code>:</p><pre class="brush: java; title: ; notranslate">
public abstract class Module
{
    public abstract String getModuleName();
    public abstract Version version();
    public abstract void setupModule(SetupContext context);
}
</pre><p>Outre la personalisation des serializers/deserializers, le module pourra modifier ou ajouter ses propres annotations ou avoir accès à des configurations de sérialisations. Voici quelques idées de librairies qui pourrait être de bons candidats à une adaptation spécifiques, proposés sur le site de Jackson:</p><ul><li>Joda Time</li><li>Google guava pour sa partie  sur les collections surtout</li><li>Hibernate, pour par exemple gérer le <em>lazy loading</em></li><li>Apache commons</li><li>des types de donnée propre à des langages de la JVM <em>hors Java</em> comme Scala, Groovy ou Clojure</li></ul><p>Une <a
href="http://wiki.fasterxml.com/JacksonModuleProjects" title="page" >page</a> regroupe certains de ces modules. De plus il est possible en ajoutant le jar <a
href="http://wiki.fasterxml.com/JacksonFeatureMiniJAXB" title="jacksonxmldatabind" >jackson-xml-databind</a> d’utiliser le format XML pour la sérialisation grâce au nouveau <em>mapper</em> <code>XmlMapper</code>.</p><p><a
href="http://blog.xebia.fr/2010/08/18/comparatif-des-librairies-json/" title="Reconnu" >Reconnu</a> comme l’outil le plus performant sur le format JSON, Jackson tente d’étendre ses fonctionnalités et d’améliorer sa modularité, et c’est plutôt une bonne nouvelle.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="EcosystmeGroovyGrails"></a>Ecosystème Groovy/Grails</h4><p>Pour ceux qui suivent l&#8217;actualité Grails, beaucoup de mouvements cette semaine. Burt Beckwith, committer sur le projet, en fait une liste exhaustive <a
href="http://burtbeckwith.com/blog/?p=512" title="sur son blog" >sur son blog</a>. Plus d&#8217;une vingtaine de plugins ont été mis à jour, parmi lesquels :</p><ul><li><a
href="http://grails.org/plugin/liquibase" title="Liquibase" >Liquibase</a></li><li><a
href="http://grails.org/plugin/fixtures" title="Fixtures" >Fixtures</a></li><li><a
href="http://grails.org/plugin/webtest" title="Webtest" >Webtest</a></li><li><a
href="http://grails.org/plugin/jquery" title="JQuery" >JQuery</a></li><li>et d&#8217;autres &#8230;</li></ul><p>Vous trouverez également un tutoriel vidéo pour <a
href="http://marakana.com/forums/java/general/228.html" title="recoder un Twitter-like en 90 minutes" >recoder un Twitter-like en 90 minutes</a>, et un autre pour coder un <a
href="http://stevegood.org/blog/8-minute-grails-contact-manager/" title="gestionnaire de contact en 8 minutes" >gestionnaire de contact en 8 minutes</a>, le tout grâce à Grails.</p><p>L&#8217;outil de build Gradle est <a
href="http://docs.codehaus.org/display/GRADLE/2011/01/04/Gradle+0.9.1+released" title="sorti en version 0.9.1" >sorti en version 0.9.1</a>, vous trouverez <a
href="http://www.objectpartners.com/2011/01/04/using-gradle-to-augment-your-legacy-ant-build/" title="sur ce blog une stratgie intressante" >sur ce blog une stratégie intéressante</a> pour migrer vos scripts ant en douceur et ainsi apporter plus de flexibilité à votre processus de construction de projet.</p><p>Pour plus de détails sur l&#8217;activité Grails de la semaine, faites un tour <a
href="http://burtbeckwith.com/blog/?p=512" title="sur le blog de Burt" >sur le blog de Burt</a>.</p><h4><a
name="VersionmajeuredeJRubyenrelease"></a>Version majeure de JRuby : 1.6 en release candidate</h4><p>Information de dernière minute : JRuby vient de sortir en version 1.6 RC1 ! Il s&#8217;agit là d&#8217;une version majeure à plusieurs égards puisqu&#8217;elle apporte la compatibilité avec Ruby 1.9.2 ! Le support des extensions Ruby compilées en C est également disponible, mais en mode expérimental. Pour plus de détails, voir <a
href="http://jruby.org/2011/01/10/jruby-1-6-0-rc1" title="les release notes" >les release notes</a>. Plus de 265 problèmes solutionnés depuis la dernière version en 2000 commits sur 9 mois, soit une moyenne de 10 commits par jour ouvré ! Un grand bravo à l&#8217;équipe pour ce joli bébé !</p><p>Il va maintenant falloir tester tout ça pour permettre de valider la version. La compatibilité avec Ruby 1.9.2 est l&#8217;effort de test le plus grandement recherché par le projet. Avis aux amateurs&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/01/11/revue-de-presse-xebia-193/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/</link> <comments>http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#comments</comments> <pubDate>Tue, 04 Jan 2011 09:16:34 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[agile client]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JBoss AS 6]]></category> <category><![CDATA[JEE6]]></category> <category><![CDATA[JSR-310]]></category> <category><![CDATA[Mobilité]]></category> <category><![CDATA[ThreeTen]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6570</guid> <description><![CDATA[La revue de presse hebdomadaire proposée par Xebia vous souhaite une bonne et heureuse année 2011. Actualité éditeurs / SSII JBoss AS 6 est disponible Agilité Comment impliquer votre client dans un projet ? Le coin de la technique La JSR 310 devient &#171;&#160;Project ThreeTen&#160;&#187; PhoneGap, une autre approche du développement d&#8217;application mobile Actualité éditeurs [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse hebdomadaire proposée par Xebia vous souhaite une bonne et heureuse année 2011.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#JBossASestdisponible">JBoss AS 6 est disponible</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#Commentimpliquervotreclientdan">Comment impliquer votre client dans un projet ?</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#LaJSRdevientProjectThreeTen">La JSR 310 devient &laquo;&nbsp;Project ThreeTen&nbsp;&raquo;</a></li><li><a
href="http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/#PhoneGapuneautreapprochedudvel">PhoneGap, une autre approche du développement d&#8217;application mobile</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="JBossASestdisponible"></a>JBoss AS 6 est disponible</h4><p>Un an après la sortie de la spec finale JEE6 en simultanée avec son implémentation de référence, Glassfish V3, c&#8217;est au tour de JBoss AS (pour Application Server) de montrer le bout de son nez en version 6.<br
/> JBoss, c&#8217;est le poids lourd des serveurs JEE. Poids lourd par la part de marché, car, d&#8217;après <a
title="une récente étude" href="http://planet.jboss.org/post/java_container_popularity_and_a_prediction">une récente étude</a> de ZeroTurnaround (ceux de l&#8217;excellent JRebel), il représente tout de même près du quart des déploiements de serveurs Java. Mais poids lourd aussi par ses fonctionnalités. Il implémente en effet <span
style="text-decoration: line-through;">la  totalité de la spécification JEE6</span> en partie JEE6 dont  le &laquo;&nbsp;Web Profile&nbsp;&raquo; en totalité (pour visualiser ce que représente Web Profile, <a
href="http://wiki.caucho.com/Resin_Java_EE_6_Web_Profile#Java_EE_6_Web_Profile">ce graphique</a> sur le site de Caucho est représentatif). Nous ne reviendrons pas sur JEE6 déjà <a
title="largement voque" href="http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/">largement évoqué</a> ici.<br
/> <a
href="http://java.dzone.com/news/jboss-6-release-rings-happy">Sur DZone</a>, Mitchell Pronschinske a listé les composant remarquables. Reprenons les un par un:</p><ul><li>JBoss Embedded AS, le serveur est embarquable directement depuis Maven, utile pour les tests</li><li><em>Single POM Dependency for all the AS runtime</em>, permet comme <a
title="expliqu ici" href="http://web.archiveorange.com/archive/v/4gws3SgEVOjkKC7KALP5">expliqué ici</a> de fournir une intégration facilitée aux utilisateurs de Maven. Une dépendance unique &laquo;&nbsp;tire&nbsp;&raquo; toutes les dépendances du serveur embarqué.</li><li><a
title="ShrinkWrap" href="http://www.jboss.org/shrinkwrap">ShrinkWrap</a>, l&#8217;API permettant d&#8217;assembler aisément des JAR, WAR ou autres EARs</li><li><a
title="JBoss Switchboard" href="http://community.jboss.org/wiki/Switchboard">JBoss Switchboard</a> et <a
title="JBossinjection" href="http://community.jboss.org/wiki/DesignofJBossInjection">JBoss-injection</a> prennent en charge l&#8217;injection de ressources JNDI</li><li>HornetQ, la solution de messaging JBoss, <a
title="rcemment vante" href="http://blog.xebia.fr/2010/09/07/revue-de-presse-xebia-175/#JBossmetenavantlesperformances">récemment vantée</a> pour ses performances</li><li>VFS 3, le système de fichier virtuel uniformise l&#8217;accès aux différentes ressources et est censé apporter une <a
title="vitesse accrue pour lire depuis les fichiers jars" href="http://planet.jboss.org/post/optimizing_the_jboss_microcontainer">vitesse accrue pour lire depuis les fichiers jars</a></li><li>JBoss OSGi integration</li><li>les Servlets en version 3.0, avec notamment la configuration par annotations, la modularisation grâce aux <em>webfragments</em> et l&#8217;exécution asynchrone. Plus de détails <a
title="sur notre blog" href="http://blog.xebia.fr/2009/09/15/servlet-3-0-les-3-points-marquants/">sur notre blog</a></li><li>JPA 2.0, implémenté comme il se doit par Hibernate</li><li>RESTEasy 2.0 qui propose une implémentation de la JSR 311, JAX-RS dont le principe est évoqué sur le <a
title="Touilleur Express" href="http://www.touilleur-express.fr/2008/04/25/jsr-311-jax-rs-rest-une-histoire-de-restaurant/">Touilleur Express</a></li><li>Microcontainer 2.2, un peu le coeur du systeme, qui nous est décrit dans <a
title="une srie de 6 articles" href="http://java.dzone.com/articles/a-look-inside-jboss-microconta">une série de 6 articles</a> par Ales Justin de JBoss.</li><li>Le déploiement de la console de management seulement <a
title=" la demande" href="http://community.jboss.org/wiki/On-DemandDeploymentofWebApplications">à la demande</a> pour ne pas pénaliser le temps de chargement</li><li>Les EJB 3.1 avec <a
title="toutes les fonctionnalits" href="http://en.wikipedia.org/wiki/Enterprise_JavaBean#EJB_3.1.2C_final_release_.282009-12-10.29">toutes les fonctionnalités</a> apportées par la JSR 318 (<em>Singleton Session Beans</em>, packaging WAR, EJB lights&#8230;)</li><li>La stack <a
title="JBossWS" href="http://www.jboss.org/jbossws">JBossWS</a> en versions CXF/Metro/Native</li><li>La spécification EE 6 &laquo;&nbsp;Web Profile&nbsp;&raquo; est bien sûr de la partie, permettant des développement <a
title="plus lgers" href="http://www.infoq.com/news/2009/12/is-the-web-profile-enough">plus légers</a></li><li>Weld 1.1, implémentation de référence de la JSR 299 autrement connue sous le nom de Context &amp; Dependency Injection</li></ul><p>Au final, ce n&#8217;est bien sûr pas un serveur sorti de nulle part que JBoss nous sert là. C&#8217;est un assemblage cohérent basé sur des composants éprouvés et disponibles pour la plupart depuis un moment. Il sera donc intéressant d&#8217;observer les retours des premiers utilisateurs et voir si <a
title="les prvisions de JBoss" href="http://planet.jboss.org/post/java_container_popularity_and_a_prediction">les prévisions de JBoss</a> ont des chances de se réaliser.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Commentimpliquervotreclientdan"></a>Comment impliquer votre client dans un projet ?</h4><p>c&#8217;est la question à laquelle Vikas Hazrati répond dans <a
title="cet article" href="http://www.infoq.com/news/2010/12/getting-the-customer-involved">cet article</a> sur InfoQ.</p><p>Selon Vikas, les signes du manque d&#8217;engagement de la part d&#8217;un client sont :</p><ul><li>peu ou pas de retours sur le travail effectué,</li><li>un retour sur les erreurs tardif, qui révèle généralement que le client teste ou s&#8217;intéresse au dernier moment au projet,</li><li>notre interlocuteur n&#8217;est pas le bon et nous ne sommes finalement pas en contact avec le client réel.</li></ul><p>Ce manque d&#8217;implication peut provenir d&#8217;une mauvaise formation aux processus de développement agiles ou encore d&#8217;un problème de temps ou de ressource disponible. Différentes stratégies peuvent être employées afin de remédier à ce problème d&#8217;implication :</p><ul><li>identifier un interlocuteur unique faisant l&#8217;interface avec les autres clients,</li><li>utiliser des techniques comme celle des <a
title="personas" href="http://agile2009.agilealliance.org/personas">personas</a> afin d&#8217;améliorer la compréhension mutuelle,</li><li>planifier les réunions en prenant au maximum compte des contraintes de vos clients,</li><li>motiver votre client en notant ses efforts et en l&#8217;encourageant dans cette voie,</li><li>et enfin la communication avec votre client est primordiale, lui garantissant un bonne connaissance de l&#8217;actualité du projet, même en phase de développement.</li></ul><p>L&#8217;implication des clients dans le projet est un élément important de sa réussite et elle ne doit donc pas être négligée. Rappelez-vous, la collaboration avec le client est une des quatre valeurs fondamentales du <a
title="manifeste agile" href="http://agilemanifesto.org/">manifeste agile</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="LaJSRdevientProjectThreeTen"></a>La JSR 310 devient &laquo;&nbsp;Project ThreeTen&nbsp;&raquo;</h4><p>La JSR 310, la fameuse JSR &laquo;&nbsp;Date and Time API&nbsp;&raquo; attendue comme le messie pour remplacer l&#8217;<a
title="implémentation défaillante" href="http://www.wolkje.net/2010/01/06/java-date-and-time-api-and-jsr-310/">implémentation défaillante</a> des dates dans le JDK n&#8217;en finit pas d&#8217;être retardée. Nous vous en parlions déjà <a
title="en 2008" href="http://blog.xebia.com/2008/03/31/datetime-and-timezone-pains/">en 2008</a>, puis l&#8217;API fut planifiée avec des réserves <a
title="pour le JDK 7" href="http://blog.xebia.fr/2010/03/08/revue-de-presse-xebia-150/#OlonreparledelaJSR">pour le JDK 7</a>&#8230; Aujourd&#8217;hui, Stephen Colebourne, le <em>spec lead</em> annonce <a
title="sur son blog" href="http://www.jroller.com/scolebourne/entry/what_about_jsr_310">sur son blog</a> diverses informations.</p><ul><li>tout d&#8217;abord, il ne semble vraiment pas satisfait de la façon dont Oracle a pris en main la communauté mais il désire tout de même continuer son travail sur l&#8217;implémentation de référence.</li><li>cette implémentation de référence a d&#8217;ailleurs maintenant un nom: elle est portée par <a
title="le projet ThreeTen" href="http://sourceforge.net/apps/mediawiki/threeten/">le projet ThreeTen</a> (ThreeTen, 310&#8230; vous voyez le rapport ? <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ).</li><li>la cible est maintenant Java 8 et non plus Java 7. Il va falloir patienter encore.</li><li>une nouvelle mailing liste, encore bien vide, est en place et un repo SVN est disponible sur Sourceforge.</li></ul><p>Une autre particularité est aussi mentionnée et peut faire réfléchir. Stephen indique en effet se réserver la possibilité d&#8217;écrire des spécifications pour le projet ThreeTen séparées de la JSR 310. Concrètement, il parle de pouvoir fournir une terminologie commune et un comportement de plus haut niveau pour pouvoir collaborer avec d&#8217;autres langages ou librairies comme XML ou SQL. Sur le principe c&#8217;est une excellente idée: faciliter la collaboration de Java avec &laquo;&nbsp;l&#8217;extérieur&nbsp;&raquo; en prenant une base solide pour socle semble une bonne chose. Mais il ne faudrait pas que cette nouvelle perspective ne vienne retarder une fois encore le projet&#8230; Cela serait vraiment dommageable pour tous ceux qui préfèrent se reposer sur les API standard du JDK plutôt que sur une librairie tierce comme Joda Time (malgré ses qualités) et qui sont en attente de cette implémentation.</p><h4><a
name="PhoneGapuneautreapprochedudvel"></a>PhoneGap, une autre approche du développement d&#8217;application mobile</h4><p>Aujourd&#8217;hui, dans le domaine du développement mobile, le choix se résume encore entre développer une application native ou une application Web Mobile. <a
title="PhoneGap" href="http://www.phonegap.com">PhoneGap</a> est un framework qui permet le développement d&#8217;applications mobiles <strong>multi-plateformes</strong> en combinant ces deux mondes.</p><p>L&#8217;approche retenue est de développer votre application en utilisant les technologies HTML 5 et JavaScript. L&#8217;accès aux fonctionnalités de la plateforme (système de fichiers, géolocalisation, notifications, appareil photo, accéléromètre, &#8230;) s&#8217;effectue via des <a
title="APIs JavaScript" href="http://docs.phonegap.com/">APIs JavaScript</a>. Le framework prend en charge le code de liaison nécessaire, et fournit également un modèle d&#8217;application native pour chaque plateforme. Il sert entre autre à démarrer une version embarquée du navigateur web. Le navigateur est donc utilisé comme environnement d&#8217;exécution standard. Cette approche est possible car les navigateurs des plateformes iOS, Android, BlackBerry OS et WebOS sont tous basés sur le moteur WebKit. Même si l&#8217;expérience utilisateur peut varier entre les plateformes, le résultat reste dans l&#8217;ensemble cohérent.</p><p>PhoneGap est encore en phase de développement. Les supports des plateformes iOS et Android sont les plus avancés, mais il faut y ajouter les plateformes BlackBerry OS, WebOS et Symbian. C&#8217;est, au final, une alternative intéressante au développement natif pour les plateformes mobiles. La dernière version en date (0.9.3) est sortie le 23 décembre.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/01/04/revue-de-presse-xebia-192/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Adobe Air, le futur du développement Mobile ?</title><link>http://blog.xebia.fr/2010/12/06/adobe-air-le-futur-du-developpement-mobile/</link> <comments>http://blog.xebia.fr/2010/12/06/adobe-air-le-futur-du-developpement-mobile/#comments</comments> <pubDate>Mon, 06 Dec 2010 21:13:50 +0000</pubDate> <dc:creator>Erwan Alliaume</dc:creator> <category><![CDATA[Mobilité]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[AIR]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[blackberry]]></category> <category><![CDATA[iPhone]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6082</guid> <description><![CDATA[On dit souvent que le développement mobile ressemble au développement web d&#8217;il y a 10 ans. Jusqu&#8217;à présent, il fallait choisir entre développer une application native ou une application Web Mobile. Les applications natives sont souvent préférées pour le moment, car elles offrent souvent une meilleure expérience utilisateur. Quant aux applications Web Mobile, elles ont [...]]]></description> <content:encoded><![CDATA[<p>On dit souvent que le développement mobile ressemble au développement web d&#8217;il y a 10 ans. Jusqu&#8217;à présent, il fallait choisir entre développer une application native ou une application Web Mobile. Les applications natives sont souvent préférées pour le moment, car elles offrent souvent une <a
href="http://blog.xebia.fr/2010/10/15/le-contexte-la-pepite-dinformation-pour-une-application-mobile-reussie/" title="meilleure exprience utilisateur" >meilleure expérience utilisateur</a>.<br
/> Quant aux applications Web Mobile, elles ont l&#8217;avantage de faciliter la mise à jour et le déploiement d’application, et ont le mérite d’être accessibles quelle que soit votre plateforme, pour peu que vous disposiez d’une connexion internet. Et bien, il se pourrait bien qu&#8217;Adobe soit en train de changer la <em>donne</em> en introduisant sa solution <a
href="http://www.adobe.com/products/air/" title="Air" >Air</a> qui vous promet le meilleur des 2 mondes !</p><p>Lors du dernier <a
href="http://blog.xebia.fr/2010/12/03/tous-reunis-chez-xebia-pour-le-xke/" title="XKE" >XKE</a>, nous avons eu la visite de <a
href="http://www.riagora.com/" title="Michal Chaize" >Michaël Chaize</a> qui est venu nous présenter les nouvelles solutions Adobe. Fort d&#8217;une matinée plutôt réussie, j&#8217;arrive à ce slot un peu blasé et fatigué en me demandant un peu l’intérêt d’une telle présentation. <em>Allez c&#8217;est reparti, je vais encore avoir le droit au discours technico-commercial que j&#8217;ai eu chez mon cher client quelques semaines auparavant.</em><br
/> Et bien que nenni ! Bien au contraire ! Je suis sorti de celui-ci avec une <strong>folle envie</strong> d&#8217;essayer de suite les technologies qu&#8217;il nous a présenté, en particulier celles qui touchaient à la <strong>mobilité</strong>.<br
/> Avant ce slot, j&#8217;avais bien entendu parler <a
href="http://blogs.adobe.com/air/2010/05/air_android_prerelease.html" title="ici" >ici</a> et <a
href="http://blog.xebia.fr/2010/11/22/devoxx-deployer-vos-applications-air-sur-android/" title="l" >là</a> de l&#8217;émergence d&#8217;une telle solution, mais rien ne m&#8217;avait donné l&#8217;envie de m&#8217;y essayer. C&#8217;est maintenant chose faite !</p><p>La plateforme Air propose donc :</p><ul><li><a
href="http://blog.xebia.fr/2010/12/06/adobe-air-le-futur-du-developpement-mobile/#Writeonceruneverywhere">une machine virtuelle multi-plateforme</a></li><li><a
href="http://blog.xebia.fr/2010/12/06/adobe-air-le-futur-du-developpement-mobile/#Flexunframeworkadaptlamobilit">un langage adapté à la mobilité</a></li><li><a
href="http://blog.xebia.fr/2010/12/06/adobe-air-le-futur-du-developpement-mobile/#Pasencoreproductionready">une solution pas tout à fait sèche</a></li><li><a
href="http://blog.xebia.fr/2010/12/06/adobe-air-le-futur-du-developpement-mobile/#Nesoyezpastimidelancezvous">un ticket d&#8217;entrée relativement faible</a></li></ul><h4><a
name="Writeonceruneverywhere"></a>Write once, run everywhere ?</h4><p>Les applications Air s&#8217;exécutant sur une machine virtuelle, toute plateforme disposant de celle-ci est à même d&#8217;exécuter vos applications. Adobe vous propose ici, d&#8217;adopter un framework &#8211; Flex &#8211; et une base de code unique pour toutes les plateformes que vous ciblez. L&#8217;API Air vous permet d&#8217;interagir avec le hardware de votre téléphone. Vous pouvez contrôler programmatiquement la présence de tel ou tel composant.</p><p>Sur Android, seuls quelques téléphones disposent de la machine virtuelle pré-installée. Pour les autres elle est disponible sur l&#8217;Android Market pour peu que vous disposiez d&#8217;un firmware récent (>= 2.2). Lorsque vous installez une application Air, si vous ne disposez pas du moteur d&#8217;exécution, un message vous propose son téléchargement et vous renvoie sur le market, contrairement à la version iPhone où le moteur est embarqué dans les applications (il est donc forcément téléchargé).</p><p>Si Air peut s&#8217;exécuter sur toutes ces plateformes, l&#8217;outil <a
href="http://blog.xebia.fr/2010/11/22/devoxx-deployer-vos-applications-air-sur-android/" title="Flash Builder 4.5 preview" >Flash Builder 4.5 preview</a>, connu aussi sous le nom de Burrito, ne permet pour le moment que le développement Android. Bien que <a
href="http://coenraets.org/blog/2010/12/deploying-a-flex-application-to-the-blackberry-playbook-and-android-devices/" title="certaines vidos" >certaines vidéos</a> montrent une compatibilité Blackberry, l&#8217;option n&#8217;est pas encore disponible dans la version de Flash Builder que j&#8217;ai téléchargé.</p><p>La taille du runtime n&#8217;est pas négligeable, sur mon Nexus One il prend 16 Mo après installation. L&#8217;option d&#8217;installation sur la carte SD n&#8217;est pas activée, inutile de bidouiller votre téléphone pour déplacer le runtime, les performances de celui-ci n&#8217;en seraient que dégradées.</p><p>Sur le papier, cette technologie permet de ne plus avoir à faire le choix d&#8217;un développement iPhone, Android ou Blackberry. En pratique, du nous sommes en pleine guerre de chapelle pour savoir où et comment seront installés les runtimes. Par exemple, à ce jour, il manque un d&#8217;incontournable dans la liste des partenaires de l&#8217;<a
href="https://projects.xebia.com/confluence/pages/editpage.action?pageId=6979602" title="Open Screen Alliance" >Open Screen Alliance</a>. Air sans Apple, c&#8217;est un peu comme une forêt sans écureuil comme disait Asterix dans l&#8217;un de ses albums.</p><p>Quoi qu&#8217;il en soit, la perspective du <em>write once, run everywhere</em> est alléchante <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Wait &#038; See&#8230;</p><h4><a
name="Flexunframeworkadaptlamobilit"></a>Flex, un framework adapté à la mobilité !</h4><p>Flex a été conçu dans l&#8217;optique de créer des composants riches. Il mêle description XML des composants graphiques (boutons, checkbox, listes &#8230;) &#8211; le MXML &#8211; à un langage de scripting &#8211; l&#8217;Actionscript 3 &#8211; permettant de donner vie à vos composants. Faisant moi même du Flex depuis 6 mois, je suis persuadé que ce langage est parfaitement adapté au développement d&#8217;applications mobiles.</p><p>À titre de comparaison, dans une application Android développée en Java l&#8217;écriture des écrans est relativement pénible :</p><ul><li>en full java, la syntaxe est lourde à manier (setters complexes, listener volumineux &#8230;),</li><li>en XML, vous devez récupérer vos éléments graphiques par leur <em>ID</em> à partir du Java pour leur rajouter du comportement.</li></ul><p>En résumé, le développent Android c&#8217;est faire du client lourd avec un langage peu flexible.</p><p>Flex est un langage pensé et conçu pour effectuer des actions asynchrones. Le langage permet l&#8217;ajout de comportements à des composants très simplement grâce à différents mécanismes dont :</p><ul><li>le passage de fonctions en paramètre, pratique pour passer des handlers sur des événements.</li><li>le databinding, qui permet de notifier la mise à jour d&#8217;un <em>model</em> aux composants qui le désirent.</li></ul><p>De plus, dernière bonne surprise, les composants graphiques utilisables dans une application mobile sont exactement les mêmes que ceux que vous utilisez dans une application Flex classique. L&#8217;apparence et le comportement ont simplement été adaptés pour les applications mobiles grâce à un nouveau Skin pour mobile dans la librairie Spark.</p><h4><a
name="Pasencoreproductionready"></a>Pas encore production ready&#8230;</h4><p>C&#8217;est bien joli tout cela, mais la peinture n&#8217;est pas complètement sèche.</p><p>Les outils ne sont disponibles qu&#8217;en version preview. Pourtant, l&#8217;intégration du développement mobile à Flash Builder est vraiment bien avancée :</p><ul><li>une vue design permet l&#8217;élaboration rapide d&#8217;écrans,</li><li>un éditeur de composants bien pratique,</li><li>un gestionnaire d&#8217;appareils vous permet de lancer des simulateurs, il contient d&#8217;ailleurs bon nombre de périphériques pré-configurés,</li><li>l&#8217;installation sur un téléphone physique fonctionne tout aussi bien.</li></ul><p>Mais il reste des progrès à faire au niveau des performances. Si l&#8217;exécution d&#8217;applications mobiles Air est bluffante sur l&#8217;émulateur, j&#8217;avoue rester un peu sur ma faim lors de l&#8217;exécution d&#8217;une même application sur mon Nexus One. (il en était de même lors de la démonstration sur tablette Android lors du XKE). Le scrolling des listes, par exemple, n&#8217;est pas aussi performant que sur une application native, la solution Flex rame encore un peu. Et plus généralement, une application Air Mobile consomme plus de CPU et de mémoire qu&#8217;une application native classique.</p><p>Mais surtout, les accords de distribution des moteurs d&#8217;exécution Air n&#8217;étant pas encore terminés, rien ne vous garantit que vous puissiez réellement profiter de votre application mobile Air sur toutes les grandes plateformes mobiles du moment.</p><h4><a
name="Nesoyezpastimidelancezvous"></a>Ne soyez pas timide, lancez-vous !</h4><p>Que vous soyez développeur mobile ou non, que vous soyez flexeur ou non, n&#8217;hésitez pas à vous lancer pour vous faire un avis. Pour cela rien de plus simple, tout est disponible gratuitement sur les <a
href="http://labs.adobe.com/" title="Labs Adobe" >Labs Adobe</a> : Adobe Flash Builder en version 4.5 preview (Burrito) (pendant 60 jours) et Adobe AIR Launchpad.</p><p>Si vous désirez essayer votre projet sur votre mobile Android (disposant d&#8217;Android 2.2 a minima), installez sur celui-ci le Runtime Air. Une fois cela fait, vous devriez mettre moins de 15 minutes pour exécuter votre première application Air sur votre mobile.</p><p>En guise de conclusion, je vous ai préparé une petite vidéo qui présente :</p><ul><li>la génération d&#8217;un projet Air mobile avec AIR Launchpad.</li><li>l&#8217;utilisation de Flash Builder pour lancer votre application Air sur une plateforme Android.</li></ul><p><a
href="http://blog.xebia.fr/2010/12/06/adobe-air-le-futur-du-developpement-mobile/"><em>Cliquer ici pour voir la vidéo.</em></a></p><div
align="center"> <a
href="http://twitter.com/ealliaume" ><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png"  alt="twitter erwan alliaume" title="twitter erwan alliaume" border="0" /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/12/06/adobe-air-le-futur-du-developpement-mobile/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Devoxx &#8211; Déployer vos applications Air sur Android</title><link>http://blog.xebia.fr/2010/11/22/devoxx-deployer-vos-applications-air-sur-android/</link> <comments>http://blog.xebia.fr/2010/11/22/devoxx-deployer-vos-applications-air-sur-android/#comments</comments> <pubDate>Mon, 22 Nov 2010 16:33:35 +0000</pubDate> <dc:creator>Ellène Dijoux</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Mobilité]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[AIR]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Devoxx]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5958</guid> <description><![CDATA[Pour ceux qui n&#8217;ont pas entendu parler d&#8217;Adobe Air, il s&#8217;agit d&#8217;une machine virtuelle permettant d&#8217;exécuter des applications Flash en dehors du navigateur. Multi-plateformes et surtout multi-écrans, le but d&#8217;Adobe est de rendre Air exécutable sur tout type de support, des terminaux mobiles aux téléviseurs. Actuellement, il est utilisable sur les mobiles équipés d&#8217;un Android [...]]]></description> <content:encoded><![CDATA[<p>Pour ceux qui n&#8217;ont pas entendu parler d&#8217;Adobe Air, il s&#8217;agit d&#8217;une machine virtuelle permettant d&#8217;exécuter des applications Flash en dehors du navigateur. Multi-plateformes et surtout multi-écrans, le but d&#8217;Adobe est de rendre Air exécutable sur tout type de support, des terminaux mobiles aux téléviseurs. Actuellement, il est utilisable sur les mobiles équipés d&#8217;un Android 2.2 ainsi que sur les BlackBerry Tablet OS et iOS. Michael Chaize et James Ward nous ont présenté dans une session d&#8217;1h les nouveautés d&#8217;Adobe Air 2.5.</p><h3><a
name="AdobeAirpouriOS"></a>Adobe Air pour iOS</h3><p>Pour le développement d&#8217;applications iPhone, Apple avait émis une restriction pour interdire l&#8217;utilisation d&#8217;outil de développement en dehors de ceux autorisés par Apple. Suite à <a
href="http://www.wired.com/gadgetlab/2010/09/apple-lifts-app-store-flash-ban-publishes-app-review-rules/" title="la levée de cette restriction" >la levée de cette restriction</a>, Adobe peut donc enfin réaliser des applications pour iPhone à partir de ses outils. Parmi les fonctionnalités d&#8217;Adobe Air, vous trouverez un <a
href="http://labs.adobe.com/technologies/packagerforiphone/" title="packager pour iOS" >packager pour iOS</a> qui permet de transformer une application Air en IPK (format des package pour l&#8217;iPhone). Ce packager est aussi disponible dans la Creative Suite 5. Le packager permet de générer une application native pouvant être exécutée pour iOS. Attention, certaines APIs n&#8217;ont pas été implémentées dans le packager.</p><h3><a
name="LesnouveautsdansAir"></a>Les nouveautés dans Air 2.5</h3><p>La grande nouveauté de Air 2.5 est la possibilité de développer des applications mobiles. Pour ce faire, deux nouvelles classes héritant d&#8217;<code>Application</code> sont disponibles : <code><a
href="http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/spark/components/MobileApplication.html" title="MobileApplication" >MobileApplication</a></code> et <code><a
href="http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/spark/components/TabbedMobileApplication.html" title="TabbedMobileApplication" >TabbedMobileApplication</a></code>. Un nouveau skin a été créé pour les applications mobiles et certains composants en bénéficient comme <code>Button</code>, <code>CheckBox</code>, <code>DataGroup</code>, <code>Label</code>, <code>List</code>, <code>Scroller</code> &#8230; Parmi les nouveaux composants dédiés, vous trouverez le <code>MobileItemRenderer</code> et le <code>MobileIconItemRenderer</code> pour les rendus de listes .</p><h3><a
name="FlashBuilderBurrito"></a>Flash Builder &laquo;&nbsp;Burrito&nbsp;&raquo;</h3><p>Burrito est le petit nom du dernier Flash Builder. Il prend en charge toutes les nouveautés disponibles dans Flex 4. La fonctionnalité mise en avant est la possibilité de développer des applications mobiles à partir de votre Flash Builder !</p><p>Flash Builder &laquo;&nbsp;Burrito&nbsp;&raquo; est disponible en version d&#8217;évaluation (pour une durée de 60 jours) ; vous pouvez le récupérer <a
href="http://labs.adobe.com/technologies/flashbuilder_burrito/" title="ici" >ici</a>. Pour ma part, très curieuse de voir ces nouvelles fonctionnalités je l&#8217;ai téléchargé et effectivement, on peut créer des applications flex mobiles.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/new-flex-mobile-project.png" border="0" alt="" /></div><p>Une fois votre projet créé, vous pouvez visualiser dans la partie Design de nouvelles options associées à votre vue.</p><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2010/11/vue-global-mobile-application-flex.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/vue-global-mobile-application-flex-300x202.png" alt="vue-global-mobile-application-flex" title="vue-global-mobile-application-flex" width="300" height="202" class="alignnone size-medium wp-image-5965" /></a></div><p>Vous pourrez sélectionner une configuration de téléphone, vous aurez le choix entre plusieurs téléphones android. <img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/choix-device.png" border="0" alt="" /></p><p>Vous pourrez également modifier l&#8217;orientation du téléphone pour vérifier le bon positionnement de vos composants. <img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/orientation-mobile.png" border="0" alt="" /></p><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2010/11/application-mobile-flex.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/application-mobile-flex-184x300.png" alt="application-mobile-flex" title="application-mobile-flex" width="184" height="300" class="alignnone size-medium wp-image-5968" /></a>&nbsp;&nbsp;&nbsp;<a
href="http://blog.xebia.fr/wp-content/uploads/2010/11/configuration-execution-mobile.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/configuration-execution-mobile-300x239.png" alt="configuration-execution-mobile" title="configuration-execution-mobile" width="300" height="239" class="alignnone size-medium wp-image-5961" /></a></div><p></p><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2010/11/release-build.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/11/release-build-300x193.png" alt="release-build" title="release-build" width="300" height="193" class="alignnone size-medium wp-image-5964" /></a></div><p>Une fois votre application réalisée, vous pouvez l&#8217;exécuter. Celle-ci sera affichée dans une fenêtre au format du téléphone que vous avez sélectionné. Elle propose aussi un menu contenant les actions disponibles pour le téléphone que vous avez sélectionné (changement de l&#8217;orientation, menu, retour arrière &#8230;).<br
/> Il est également possible d&#8217;exécuter votre application directement sur votre Android si bien évidemment vous en avez un <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Une simple connexion USB suffit pour cela. Malheureusement, je n&#8217;ai pas pu tester cette partie mais espérons que le père Noël m&#8217;apporte un Android 2.2 le mois prochain.</p><p>Ce n&#8217;est pas tout. Vous avez développé votre application et l&#8217;avez testée. Vous voulez maintenant la partager ? Il suffit simplement de préparer le package pour le déposer sur Android Market. Et avec Flash Builder &laquo;&nbsp;Burrito&nbsp;&raquo; rien de plus simple, exportez votre projet et sélectionnez <strong>Release Build</strong>. La seule plateforme disponible pour le moment est Google Android. Après avoir donné votre certificat et mot de passe, Flash Builder vous génère un APK contenant une application native Android que vous pouvez déposer sur Android Market.</p><p>Le déploiement semble simple et pourrait motiver de nouveaux développeurs à réaliser des applications pour mobile.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/11/22/devoxx-deployer-vos-applications-air-sur-android/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Comment intégrer des graphiques dans une application Android ?</title><link>http://blog.xebia.fr/2010/10/21/comment-integrer-des-graphiques-dans-une-application-android/</link> <comments>http://blog.xebia.fr/2010/10/21/comment-integrer-des-graphiques-dans-une-application-android/#comments</comments> <pubDate>Thu, 21 Oct 2010 13:44:18 +0000</pubDate> <dc:creator>Erwan Alliaume</dc:creator> <category><![CDATA[Mobilité]]></category> <category><![CDATA[Achartengine]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[chart]]></category> <category><![CDATA[ChartDroid]]></category> <category><![CDATA[Google]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5672</guid> <description><![CDATA[Android ne propose nativement aucune solution pour générer des courbes, camemberts et autres graphiques. Lors du développement d&#8217;applications, il est pourtant fréquent que l&#8217;on veuille afficher ce genre d&#8217;informations. Les terminaux Android disposant pour la plupart d&#8217;une résolution plutôt petite (< 800*600), il est souvent plus simple et plus efficace d'afficher les valeurs d'un tableau [...]]]></description> <content:encoded><![CDATA[<p>Android ne propose nativement aucune solution pour générer des courbes, camemberts et autres graphiques. Lors du développement d&#8217;applications, il est pourtant fréquent que l&#8217;on veuille afficher ce genre d&#8217;informations. Les terminaux Android disposant pour la plupart d&#8217;une résolution plutôt petite (< 800*600), il est souvent plus simple et plus efficace d'afficher les valeurs d'un tableau sous forme de graphique.</p><p>Cet article a pour but de vous présenter quelques-unes des solutions les plus répandues pour répondre à ce besoin. Pour cela, nous allons créer un camembert de 3 manières différentes :</p><ul><li><a
href="http://blog.xebia.fr/2010/10/21/comment-integrer-des-graphiques-dans-une-application-android/#GoogleChartingAPI">Google Chart API</a></li><li><a
href="http://blog.xebia.fr/2010/10/21/comment-integrer-des-graphiques-dans-une-application-android/#achartengine">Achartengine</a></li><li><a
href="http://blog.xebia.fr/2010/10/21/comment-integrer-des-graphiques-dans-une-application-android/#Chartdroid">ChartDroid</a></li></ul><p>Cet article est une adaptation libre du billet de l&#8217;un des mes collègues indiens Yogesh Kapoor, l&#8217;original est disponible en anglais sur le <a
href="http://xebee.xebia.in/2010/08/31/exploring-android-charting-and-graphs-solutions/" title="blog de Xebee" >blog de Xebee</a>.</p><h4><a
name="GoogleChartingAPI"></a>Google Charting API</h4><p>L&#8217;utilisation de Google Charting est très simple. Cette API permet de créer des graphiques par l&#8217;intermédiaire d&#8217;une URL. Vous n&#8217;avez qu&#8217;à passer les bon arguments à celle-ci pour récupérer votre graphique. Comme ce service est basé sur une URL, vous devez disposer d&#8217;une connexion internet pour que celle-ci fonctionne. Si votre application s&#8217;exécute hors ligne, passez votre chemin.</p><p>L&#8217;appel à l&#8217;<a
href="http://code.google.com/apis/chart/" title="API Google Charting" >API Google Charting</a> s&#8217;effectue par l&#8217;intermédiaire d&#8217;URL ressemblant à celle-ci :</p><pre class="brush: java; title: ; notranslate">
http://chart.apis.google.com/chart?cht=p3&#038;chs=250x100&#038;chd=t:30,60,10&#038;chl=cars|bikes|trucks
</pre><p>Dans cet exemple, voici comment lire les paramètres :</p><ul><li>cht=t3, type du graphique, t3 = camembert 3D,</li><li>chs=250&#215;100, la résolution,</li><li>chd=t:30,60,10, les données,</li><li>chl=cars|bikes|trucks, les libellés.</li></ul><p>Le google code du projet est plutôt bien fait, il vous permet de créer différents types de graphiques en vous inspirant d&#8217;une <a
href="http://code.google.com/apis/chart/docs/gallery/chart_gall.html" title="multitude dexemples" >multitude d&#8217;exemples</a>.</p><p>Vous pouvez intégrer un graphique de ce type dans une application Android par l&#8217;intermédiaire d&#8217;une simple <a
href="http://developer.android.com/intl/de/reference/android/webkit/WebView.html" title="WebView" >WebView</a>. Difficile de faire plus simple.</p><pre class="brush: java; title: ; notranslate">
@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  WebView webView = new WebView(this);
  webView.loadUrl(&quot;http://chart.apis.google.com/chart?cht=p3&amp;chs=250x100&amp;chd=t:30,60,10&amp;chl=cars|bikes|trucks&quot;);
  setContentView(webView);
}
</pre><p>La méthode <code>onCreate()</code> est appelée à la création d&#8217;une activité. Dans l&#8217;exemple ci-dessus, nous avons créé une WebView, chargé l&#8217;url de notre graphique dans celle-ci et affecté notre vue comme composant principal de l&#8217;activité.</p><p>Pour que cela fonctionne, comme vous avez besoin d&#8217;un accès internet, vous devez ajouter la permission suivante dans votre <code>AndroidManifest.xml</code>.</p><pre class="brush: java; title: ; notranslate">
&lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; /&gt;
</pre><p>Et c&#8217;est tout ce que vous avez à faire ! Notez au passage que vous n&#8217;êtes pas obligé de passer par une <code>WebView</code>, vous pouvez également télécharger cette image et l&#8217;afficher comme n&#8217;importe quel autre <em>drawable</em> dans n&#8217;importe quel composant (imageView, boutons, backgounds &#8230;)</p><p>Voici un capture d&#8217;écran du résultat obtenu, le graphique est plutôt joli. Il vous est possible de modifier les couleurs, ajouter une légende, changer le type de graphique en ajoutant des <a
href="http://code.google.com/apis/chart/docs/gallery/pie_charts.html" title="paramtres supplmentaires" >paramètres supplémentaires</a>.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/10/01_googleapichart-300x193.png" border="0" alt="Google Char Api Android" /></div><p>Si votre application n&#8217;a pas besoin d&#8217;accéder à internet, ce type de graphique n&#8217;est pas adapté. Continuons notre tour d&#8217;horizon avec une autre solution &#8230; hors ligne.</p><h4><a
name="achartengine"></a>achartengine</h4><p><a
href="http://code.google.com/p/achartengine/" title="achartengine" >achartengine</a> est un projet permettant de générer différents types de graphique pour Android. Cette API utilise le mécanisme d&#8217;<code>Intent</code>, des messages configurables qui permettent de lancer l&#8217;exécution d&#8217;une activité tierce. Elle ne nécessite aucune connexion internet..</p><p>Qui dit <code>Intent</code> dit nouvelle activité. Les graphiques sont affichés sur des activités dédiées. Contrairement à Google Chart API, vous ne pourrez donc pas intégrer vos graphiques directement dans vos activités.</p><p>Pour l&#8217;utiliser, télécharger la dernière version du jar du projet sur le <a
href="http://code.google.com/p/achartengine/downloads/list" title="Google Code du projet" >Google Code du projet</a>, puis ajoutez le à votre projet Android.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/10/02_libfolder.png" border="0" alt="" /></div><p>Voici l&#8217;exemple d&#8217;une classe contenant une méthode qui créer un <code>Intent</code> configuré pour afficher un camembert :</p><pre class="brush: java; title: ; notranslate">
public class MyChartExample {
  public Intent createIntent(Context context) {
    int[] colors = new int[] { Color.RED, Color.YELLOW, Color.BLUE };
    DefaultRenderer renderer = buildCategoryRenderer(colors);
    CategorySeries categorySeries = new CategorySeries(&quot;Vehicles Chart&quot;);
    categorySeries.add(&quot;cars &quot;, 30);
    categorySeries.add(&quot;trucks&quot;, 20);
    categorySeries.add(&quot;bikes &quot;, 60);
    return ChartFactory.getPieChartIntent(context, categorySeries, renderer);
  }
  private DefaultRenderer buildCategoryRenderer(int[] colors) {
    DefaultRenderer renderer = new DefaultRenderer();
    for (int color : colors) {
      SimpleSeriesRenderer r = new SimpleSeriesRenderer();
      r.setColor(color);
      renderer.addSeriesRenderer(r);
    }
    return renderer;
  }
}
</pre><p>La récupération de l&#8217;<code>Intent</code> bien configuré s&#8217;effectue par l&#8217;intermédiaire de la méthode <code>createIntent</code>. À l&#8217;intérieur de celle-ci, un <code>SimpleSeriesRenderer</code> est créé pour chaque part du camembert. Ces renderers sont ensuite ajoutés à un <code>DefaultRenderer</code> global au graphique.</p><p>À ce stade, la structure du graphique est configurée, il nous reste plus qu&#8217;à déclarer les valeurs des différentes parts de notre camembert. Pour cela, nous créons un <code>CategorySeries</code> avec les mêmes libellés et valeurs que nous avons utilisé dans l&#8217;exemple précédent.</p><p>Pour finir, nous fabriquons à partir de tout cela (renderers + series) un <code>Intent</code> correctement configuré en utilisant la factory prévue à cet effet.</p><p>Notre <code>Intent</code> créé, il ne nous reste plus qu&#8217;à l&#8217;utiliser pour lancer une nouvelle activité contenant le graphique. Il s&#8217;agit du mécanisme habituel pour lancer une nouvelle activité.</p><pre class="brush: java; title: ; notranslate">
  Intent achartIntent = MyChartExample.createIntent(this);
  startActivity(achartIntent);
</pre><p>Après avoir exécuté ce code, voici ce qui devrait s&#8217;afficher.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/10/03_achart2-223x300.png" border="0" alt="" /></div><h4><a
name="Chartdroid"></a>Chartdroid</h4><p>La dernière solution présentée dans cet article est plus contraignante d&#8217;utilisation. Elle utilise le même mécanisme d&#8217;<code>Intent</code> que la solution précédente, mais ici les activités ne sont pas directement intégrées à votre projet. Pour que les <code>Intents</code> fonctionnent, vous devez installer une application tierce : <code>ChartDroid</code>. Notez qu&#8217;il vous est cependant possible de faciliter cette installation en proposant programmatiquement un lien sur le market pour la récupérer (ce mécanisme n&#8217;est pas présenté dans cet article, il fonctionne, une fois encore, via un <code>Intent</code>).</p><p>Pour utiliser cette solution, vous devez créer un <code>ContentProvider</code>. C&#8217;est un mot qui peut faire peur au premier abord, mais il s&#8217;agit d&#8217;un des mécanismes proposé par Android pour communiquer entre application. Un <code>ContentProvider</code> est utilisable après la création d&#8217;un <code>Intent</code>, il permet de récupérer des données à partir d&#8217;un type et d&#8217;un URL.</p><pre class="brush: java; title: ; notranslate">
public class ChartDroidDataProvider extends ContentProvider {
  static final String AUTHORITY =  &quot;com.xyz.contentprovider.chardroid&quot;;
  @Override
  public String getType(Uri uri) {
    return &quot;vnd.android.cursor.dir/vnd.com.googlecode.chartdroid.graphable&quot;;
  }
  public static final Uri PROVIDER_URI = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT).authority(AUTHORITY).build();
  @Override
  public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
    // Fetch the actual data
    MatrixCursor c = new MatrixCursor(new String[] {
      BaseColumns._ID,
      &quot;COLUMN_AXIS_INDEX&quot;, &quot;COLUMN_SERIES_INDEX&quot;,
      &quot;COLUMN_DATUM_VALUE&quot;, &quot;COLUMN_DATUM_LABEL&quot;
    });
    c.newRow().add(1).add(0).add(1).add(30).add(null);
    c.newRow().add(2).add(0).add(1).add(10).add(null);
    c.newRow().add(3).add(0).add(1).add(60).add(null);
    return c;
  }
  ...
}
</pre><p>Notez que nous avons supprimé du code précédent les méthodes qui sont générées par défaut par nos IDEs et que nous n&#8217;avons pas eu besoin de modifier.</p><p>La méthode <code>query</code> est en fait chargée de fournir les données nécessaires à la construction du graphique. Ce listing est l&#8217;un des exemples les plus minimalistes nécessaire à l&#8217;API pour générer un camembert. Nous utilisons un <code>MatrixCursor</code> afin de passer les valeurs de notre graphique. Au premier abord, la manière de récupérer les données ne semblent pas très claire, la syntaxe n&#8217;est pas des plus conviviale. Au final, on dit souvent que la première impression est souvent la bonne <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>N&#8217;hésitez pas à consulter le <a
href="http://code.google.com/p/chartdroid/wiki/InterfaceSpecification" title="site officiel" >site officiel</a> pour plus d&#8217;informations sur ce projet.</p><p>Maintenant que notre content provider est crée, il ne nous reste plus qu&#8217;à démarrer l&#8217;activité ChartDroid pour afficher notre graphique. Cela s&#8217;effectue par un <code>Intent</code> :</p><pre class="brush: java; title: ; notranslate">
Intent chartDroidIntent = new Intent(Intent.ACTION_VIEW, ChartDroidDataProvider.PROVIDER_URI);
chartDroidIntent.putExtra(Intent.EXTRA_TITLE, &quot;Chart droid&quot;);
chartDroidIntent.addCategory(&quot;com.googlecode.chartdroid.intent.category.PIE_CHART&quot;);
startActivity(chartDroidIntent);
</pre><p>Dans le morceau de code précédent, la ligne <em>category</em> est importante car elle définie le type de graphique à afficher.</p><p>Après exécution, vous devriez avoir un résultat qui ressemble à cela :</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/10/04_chartdroid-211x300.png" border="0" alt="" /></div><h4><a
name="Conclusion"></a>Conclusion</h4><p>Pour conclure, la solution <strong>Google Chart API</strong> est la plus aboutie, je vous la recommande vivement. Les graphiques sont obtenus très facilement et sont plutôt jolis. Si vous n&#8217;êtes pas prêt à dépendre d&#8217;une connexion internet, je vous recommanderais la deuxième solution : <strong>achartengine</strong>. Bien que cela ne se voit pas sur les captures d&#8217;écran ci-dessous, les graphiques obtenus par achartengine sont généralement un peu moins jolis que ceux obtenus par chartdroid. C&#8217;est la contrainte d&#8217;avoir à installer une application tierce qui cause du tord à la troisième solution.</p><p>Pour finir, notez que toutes les solutions n&#8217;ont pas été présentées dans cet article. Je pense en particulier aux nombreuses petites surcouches jfreechart qui émergent (et meurent) ici et là. Je ne les ai pas présentées car la majorité d&#8217;entre elles ne sont que très peu actives.</p><div
align="center"> <a
href="http://twitter.com/ealliaume" ><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png"  alt="twitter erwan alliaume" title="twitter erwan alliaume" border="0" /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/10/21/comment-integrer-des-graphiques-dans-une-application-android/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Le contexte, la pépite d&#8217;information pour une application Mobile réussie</title><link>http://blog.xebia.fr/2010/10/15/le-contexte-la-pepite-dinformation-pour-une-application-mobile-reussie/</link> <comments>http://blog.xebia.fr/2010/10/15/le-contexte-la-pepite-dinformation-pour-une-application-mobile-reussie/#comments</comments> <pubDate>Fri, 15 Oct 2010 12:22:02 +0000</pubDate> <dc:creator>Erwan Alliaume</dc:creator> <category><![CDATA[Mobilité]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[blackberry]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[windows mobile]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5649</guid> <description><![CDATA[Vous souvenez-vous de la course au Web ? Cette période pas si lointaine où bon nombre d&#8217;entre nous voulions un site Web sans trop savoir quoi mettre dedans ni trop comment s&#8217;y prendre. Plus que le contenu, l&#8217;important était d&#8217;être présent sur la toile même si on ne savait pas trop quoi y exposer. Depuis, [...]]]></description> <content:encoded><![CDATA[<p>Vous souvenez-vous de la course au Web ? Cette période pas si lointaine où bon nombre d&#8217;entre nous voulions un site Web sans trop savoir quoi mettre dedans ni trop comment s&#8217;y prendre. Plus que le contenu, l&#8217;important était d&#8217;être présent sur la toile même si on ne savait pas trop quoi y exposer. Depuis, notre <em>vitrine</em> a bien évolué, nous nous sommes approprié ce nouvel espace et nous avons adapté le contenu à ce <em>nouveau</em> support.</p><p>Avec la popularisation des smartphones, une nouvelle course démarre. Le nombre d&#8217;applications et de sites mobiles <a
href="http://www.androlib.com/appstats.aspx" title="explose" >explose</a>. Avant de jaillir des <em>starting blocks</em>, prenons le temps de connaitre les spécificités du parcours de cette nouvelle course.</p><p>Lorsque je navigue sur le web, je suis installé <strong>chez moi</strong>. Je suis assis sur une chaise ou un fauteuil <strong>confortable</strong>. Je dispose d&#8217;un écran de taille conséquente qui me permet d&#8217;afficher un <strong>grand nombre</strong> d&#8217;informations. Je peux prendre le <strong>temps que je désire</strong> pour effectuer chacune de mes actions. Je cherche, je farfouille, je compare, je prends des notes. Bref, j&#8217;ai directement à disposition tout ce que je désire pour me faire un avis pertinent sur ce que je consomme. La taille de mon écran et la puissance de mon ordinateur me permettent d&#8217;ouvrir de <strong>nombreuses applications</strong> simultanément. Mon confort, mon matériel et ma <strong>bande passante</strong> me permettent de parler à plusieurs personnes en même temps, d&#8217;effectuer des recherches sur internet, tout en écoutant le dernier album en ligne d&#8217;un nouvel artiste que je viens de découvrir sur mon forum spécialisé préféré.</p><p>Lorsque j&#8217;attrape mon smartphone, le contexte est complètement différent. Je suis souvent <strong>hors de chez moi</strong> et je compte utiliser celui-ci dans un <strong>but précis</strong>. Bien qu&#8217;il soit multitâche, les caractéristiques de mon téléphone ne me donnent pas forcément envie d&#8217;effectuer simultanément plusieurs tâches complexes. La taille de mon écran n&#8217;est pas adaptée à la lecture ou visionnage de vidéos durant plusieurs heures. Par contre, mon téléphone est un petit <strong>bijou technologique</strong> ; il dispose d&#8217;une puce GPS, d&#8217;un détecteur de mouvement, d&#8217;une boussole, d&#8217;un appareil photo, j&#8217;en passe et des meilleures, et surtout, d&#8217;une connexion internet mobile. Tout ce matériel ne sert qu&#8217;à une seule chose : fournir un maximum d&#8217;informations sur le <strong>contexte</strong> dans lequel j&#8217;utilise mon téléphone. Si on appelle ça un <em>smartphone</em>, c&#8217;est qu&#8217;il y a une raison <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Le contexte ! C&#8217;est la clé ! Cette information n&#8217;a jamais été aussi précise qu&#8217;avec un téléphone, il est temps d&#8217;en profiter !</p><p>Votre ordinateur ne délivre que très peu d&#8217;informations sur son contexte d&#8217;utilisation. Bien que certaines fonctionnalités piquées de votre mobile arrivent peu à peu sur votre poste fixe (géolocalisation, &#8230;), nous restons encore bien loin des possibilités offertes par votre téléphone. La force première de la mobilité est &#8230; votre mobilité <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Une conclusion découle directement de ce constat : vous avez tout intérêt à <strong>créer</strong> une application pensée pour la mobilité plutôt que d&#8217;essayer d&#8217;en adapter une. Essayer d&#8217;adapter un site web pour le mobile en n&#8217;en modifiant que le look and feel n&#8217;apporterait que de la <em>valeur minorée</em> à celui-ci. Penser une version mobile comme une version light de votre application en ligne vous fera passer à côté de ce que recherchent vos utilisateurs. Lorsqu&#8217;on utilise son téléphone, on s&#8217;attend à trouver de l&#8217;information en fonction de son contexte. Utiliseriez-vous l&#8217;application de recherche de stations Velib sur votre vélo si celle-ci n&#8217;était pas capable d&#8217;afficher les stations les plus proches de vous ?</p><p><center><strong>APPLICATIONS MOBILES = SERVICES au cœur de votre métier + CONTEXTE d&#8217;utilisation</strong></center></p><p>Malgré toute la valeur métier que vos services peuvent fournir, vous ne tirerez vraiment partie de ce nouveau média que si vous prenez en compte le contexte de vos utilisateurs. Pour approfondir ce sujet, je vous suggère la lecture de &laquo;&nbsp;<a
href="http://www.amazon.fr/gp/product/0596155441?ie=UTF8&#038;tag=andminmar-21&#038;linkCode=as2&#038;camp=1642&#038;creative=6746&#038;creativeASIN=0596155441" title="Mobile Design and Development" ><em>Mobile Design and Development</em></a>&nbsp;&raquo; qui y consacre l&#8217;un des ses chapitres.</p><div
align="center"> <a
href="http://twitter.com/ealliaume" ><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png"  alt="twitter erwan alliaume" title="twitter erwan alliaume" border="0" /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/10/15/le-contexte-la-pepite-dinformation-pour-une-application-mobile-reussie/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/</link> <comments>http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/#comments</comments> <pubDate>Tue, 17 Aug 2010 05:47:32 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[GraniteDS]]></category> <category><![CDATA[JQuery Mobile]]></category> <category><![CDATA[livre]]></category> <category><![CDATA[Nasa]]></category> <category><![CDATA[Nebula]]></category> <category><![CDATA[Oracle]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5203</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Oracle poursuit Google pour violation de brevets RIA Bean Validation pour Flex. Annonce de jQuery Mobile SOA La NASA ouvre les sources de son cloud privé Le coin de la technique Continuous Delivery, le livre le plus important de 2010 [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#OraclepoursuitGooglepourviolat">Oracle poursuit Google pour violation de brevets</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#BeanValidationpourFlex">Bean Validation pour Flex.</a></li><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#AnnoncedeJQueryMobile">Annonce de jQuery Mobile</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#LaNASAouvrelessourcesdesonclou">La NASA ouvre les sources de son cloud privé</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#ContinuousDeliverylelivreleplu">Continuous Delivery, le livre le plus important de 2010 ?</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="OraclepoursuitGooglepourviolat"></a>Oracle poursuit Google pour violation de brevets</h4><p>Jeudi dernier, Oracle a lancé une action en justice contre Google pour violation de brevets quant à l&#8217;utilisation de Java pour la plateforme Android. L&#8217;information a rapidement fait le tour du web et de la twitosphère provoquant à l&#8217;encontre d&#8217;Oracle son lot de commentaires indignés, notamment dans les communautés Java et libristes (<em>On retiendra le billet peu amène de <a
title="James Gosling  The shit finally hits the fan" href="http://nighthacks.com/roller/jag/entry/the_shit_finally_hits_the">James Gosling : &laquo;&nbsp;The shit finally hits the fan&#8230;.&nbsp;&raquo;</a></em>).</p><p>Dans sa <a
title="plainte" href="http://i.i.com.com/cnwk.1d/i/ne/pdfs/FINAL_Complaint.pdf?tag=mncol;txt">plainte</a>, Oracle précise que <em>&laquo;&nbsp;Android [...] et les appareils qui utilisent Android violent un ou plusieurs brevets parmi les suivants: 6,125,447; 6,192,476; 5,966,702; 7,426,720; RE38,104; 6,910,205; et 6,061,520&#8243;</em>. Les brevets en question portent sur l&#8217;implémentation de machines virtuelles, l&#8217;outillage et les compilateurs.<br
/> Google, certainement pour garder les coudées franches, a fait le choix d&#8217;implémenter sa machine virtuelle Dalvik sans utiliser OpenJDK <em>(la version GPL2 de Java)</em>. Cette implémentation n&#8217;est pas pleinement compatible Java et est exécutée sur des terminaux mobiles. Or, lorsque Sun avait <em>&laquo;&nbsp;open sourcé une partie de Java&nbsp;&raquo;</em> au travers d&#8217;OpenJDK, les garanties d&#8217;être à l&#8217;abri d&#8217;attaques pour violation de brevet ne protégeaient que les implémentations pleinement compatibles Java pour desktop et serveur uniquement <em>(pas les implémentations pour terminaux mobiles)</em>.<br
/> Pour étayer son accusation selon laquelle Google a sciemment violé les brevets relatifs à Java, Oracle avance que Google était, de longue date, au courant des brevets détenus par Sun. Eric Schmidt (CEO de Google) et Urs Hölzle (Senior VP of operations chez Google) ont en effet joué un rôle significatif dans le développement de la technologie Java lorsqu&#8217;ils étaient chez Sun.<br
/> La réponse de Google à l&#8217;attaque d&#8217;Oracle <em>(au travers d&#8217;un communiqué de presse)</em> est sans surprise : Google estime que la plainte est sans fondement. D&#8217;autre part, Google considère qu&#8217;avec cette plainte, Oracle n&#8217;attaque pas seulement Google, mais aussi la communauté Open Source Java.</p><p>A priori, l&#8217;objectif d&#8217;Oracle n&#8217;est pas de &laquo;&nbsp;tuer&nbsp;&raquo; Android mais de profiter de son succès en imposant à Google de lui reverser une part des revenus de la plateforme. En effet, Java ME est une source non négligeable de revenus pour Sun <em>(Oracle)</em> puisque cette technologie équipe de très nombreux terminaux. Mais le succès fulgurant d&#8217;Android sur le marché des smartphones est sur le point de tarir cette source de revenus.<br
/> D&#8217;autre part, Oracle souhaite sans doute envoyer un message clair quant à sa conception de l&#8217;utilisation de la technologie Java là où le silence de Sun vis à vis d&#8217;Android pouvait être perçu comme un blanc seing.</p><p>Ce genre d&#8217;affaire est généralement synonyme de feuilleton judiciaire à rallonge <em>(comme dans le cas emblématique de <a
title="SCO vs Linux" href="http://en.wikipedia.org/wiki/SCO-Linux_controversies">SCO vs. Linux</a>)</em>. Il y a donc peu de chances que le cas Google / Oracle se règle rapidement. La complexité du dossier <em>(notamment en ce qui concerne les tenants et aboutissants techniques)</em> laisse présager de longs débats. Même si l&#8217;issu d&#8217;un procès reste incertaine Google était certainement préparé à une telle attaque <em>(et est de taille à y faire face)</em> et sa défense sera bien préparée.<br
/> Tant que l&#8217;affaire ne sera pas réglée, l&#8217;ensemble de l&#8217;écosystème Android <em>(constructeurs, développeurs, utilisateurs, &#8230;)</em> va retenir son souffle, mais l&#8217;engouement pour la plateforme Android ne devrait pas trop en pâtir. D&#8217;une part, Google continuera de développer la technologie Android. D&#8217;autre part, gageons que Google prendra ses responsabilités sur le sujet de la propriété intellectuelle et jouera son rôle de pare feux vis à vis des constructeurs équipant leurs terminaux de l&#8217;OS Android.</p><p>La fin d&#8217;Android est très peu probable. Oracle n&#8217;y a aucun intérêt et ce pour plusieurs raisons. D&#8217;abord parce qu&#8217;Oracle a tout intérêt à ce que Java soit présent sur le marché des smartphones. Or cette présence passe par Android, pas par Java ME et Oracle n&#8217;a, aujourd&#8217;hui, ni la volonté, ni la capacité d&#8217;innover dans ce sens. Ensuite parce que l&#8217;essor des smartphones sous Android favorise le développement d&#8217;applications utilisant des <em>backend</em> <em>(serveurs)</em> mettant en œuvre des serveurs d&#8217;applications Java et des bases de données, augmentant ainsi la taille d&#8217;un marché sur lequel Oracle se taille la part du lion. Enfin parce qu&#8217;Android réunit une large communauté Java.<br
/> Il semble donc que cette affaire ne puisse avoir que deux issues :</p><ul><li>Google sera contraint à verser une partie des revenus d&#8217;Android à Oracle. Soit parce qu&#8217;Oracle aura gagné un procès, soit parce que Google aura préféré négocier un accord à l&#8217;amiable.</li><li>Ce sera le status quo. Soit parce qu&#8217;Oracle aura perdu un procès, soit parce qu&#8217;Oracle retirera sa plainte suite aux négociations qui vont s&#8217;entamer <em>(au cours desquels Google pourrait commencer à utiliser ses brevets comme arme de dissuasion)</em>.</li></ul><p>Ce qui est sûr, c&#8217;est que l&#8217;image de Java ne sortira pas grandie de l&#8217;initiative d&#8217;Oracle <em>(qui semble d&#8217;ores et déjà avoir perdu la bataille de l&#8217;image)</em>.</p><p>Pour ceux qui souhaitent approfondir le sujet, l&#8217;excellent billet de Charles Nutter <a
title="My Thoughts on Oracle v Google" href="http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html">&laquo;&nbsp;My Thoughts on Oracle v Google&nbsp;&raquo;</a> fait longuement le tour de la question et propose des perspectives très intéressantes.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="BeanValidationpourFlex"></a>Bean Validation pour Flex.</h4><p>Le framework <a
title="GraniteDS" href="http://www.graniteds.org/confluence/pages/viewpage.action?pageId=229378">GraniteDS</a> continue à offrir des fonctionnalités riches pour Flex, en parallèle des offres de Adobe, BlazeDs (open source) et LifeCycle ES (commercial).<br
/> La <a
title="version 2.2 (actuellement en bêta publique)" href="http://tech.groups.yahoo.com/group/graniteds/message/7122">version 2.2 (actuellement en bêta publique)</a> ne faillit pas à la règle et amène une rafraichissante innovation : l&#8217;implémentation de la JSR 303 (BeanValidation) pour Flex. Toutes les contraintes standard de la JSR sont implémentées via des annotations AS3 et le générateur de code maison (GAS3) permet la conversions des annotations des beans Java.<br
/> La validation s&#8217;appuie sur une nouvelle fonctionnalité de réflexion.<br
/> Autre avancées, peut être moins spectaculaire, la prise en compte des types &#8216;big numbers&#8217; de Java dans les sérialisations offertes par le framework.<br
/> GraniteDs, dont certains avait décrété la mort à la publication de BlazeDs, est toujours bien vivant et comble, en open source,  certains manques laissés par Adobe.</p><h4><a
name="AnnoncedeJQueryMobile"></a>Annonce de jQuery Mobile</h4><p>C&#8217;est une nouvelle qui va à coup sûr faire du bruit dans un monde du développement mobile déjà bouillonnant, puisque vient d&#8217;être annoncée la sortie pour la fin d&#8217;année de la version mobile du framework <a
title="jQuery" href="http://jquerymobile.com/">jQuery</a>. Et ce n&#8217;est pas par la petite porte que le célèbre framework web souhaite faire son entrée, puisque contrairement à ses concurrents déclarés, tels que <a
title="jQTouch" href="http://www.jqtouch.com/">jQTouch</a> ou bien <a
title="Sensha Touch" href="http://www.sencha.com/products/touch/">Sensha Touch</a>, jQuery Mobile se veut être un framework JavaScript ciblant la quasi totalité des <a
title="plateformes mobiles" href="http://jquerymobile.com/gbs/">plateformes mobiles</a> web actuelles (Blackberry, Windows Mobile, iOS pour l&#8217;iPhone et l&#8217;iPad, Android, Symbian, Bada, &#8230;), et permettant de développer des interfaces riches capables de faire rougir bon nombre d&#8217;interfaces graphiques natives.</p><p>Avec l&#8217;avènement d&#8217;HTML5 (WebStorage, WebSockets, Vidéo, Géolocalisation, &#8230;), du CSS3, et des navigateurs mobiles dernière génération proposant des moteurs JavaScripts performants, la guerre du web semble se trouver un nouveau terrain de bataille, et le web mobile aura sous peu toutes les armes nécessaires pour déstabiliser le business modèle à peine naissant des Markets, tel que l&#8217;iTunes App Store ou bien l&#8217;Android Market. Le marché des applications mobiles semble donc suivre la voie de son grand frère, celui des applications PC, et proposera à terme de nombreuses applications riches directement par le web.</p><p>L&#8217;annonce parue sur le site de jQuery Mobile indique que l&#8217;un des objectifs du framework est de pouvoir développer une application unique pour toutes les plateformes mobiles. Ce concept, ne semble pas nouveau puisque l&#8217;objectif de J2ME sorti il y a 10 ans déjà était bien de développer une solution unique, rappelez-vous: &laquo;&nbsp;Write Once, Run everywhere&nbsp;&raquo;. Le slogan semble être ici: &laquo;&nbsp;Write Less, Do More&nbsp;&raquo;, mais l&#8217;objectif de fond est bien le même.</p><p>Palm avec sa plateforme WebOS et Firefox sont déjà sponsors du projet. Bien qu&#8217;encore en développement intense, la première sortie est prévue pour fin 2010. Ce framework pourrait bien être une des grandes surprises mobile de 2010 et devenir très rapidement un incontournable pour le développement web d&#8217;applications riches pour mobile.</p><p>Pour en apprendre plus sur cette déclinaison de jQuery, vous pouvez suivre les liens suivants et apprécier les designs présentés :</p><ul><li><a
title="Site officiel de jQuery Mobile" href="http://jquerymobile.com/">Site officiel de jQuery Mobile</a></li><li><a
title="La device support grid de jQuery Mobile" href="http://jquerymobile.com/gbs/">La device support grid de jQuery Mobile</a></li><li><a
title="Les designs concepts" href="http://jquerymobile.com/designs/">Les designs concepts</a></li></ul><h3><a
name="SOA"></a>SOA</h3><h4><a
name="LaNASAouvrelessourcesdesonclou"></a>La NASA ouvre les sources de son cloud privé</h4><p>La NASA a récemment <a
title="annoncé" href=" http://www.dailyfinance.com/story/company-news/nasa-rackspace-open-source-cloud-computing/19562733/">annoncé</a> son intention d&#8217;offrir le code de son <em>cloud</em> privé Nebula au projet <a
title="OpenStack" href=" http://openstack.org/index.php">OpenStack</a> en partenariat avec <a
title="Rackspace" href=" http://www.rackspace.com/index.php">Rackspace</a>. Il s&#8217;agit d&#8217;une implémentation d&#8217;une IaaS orientée vers le calcul scientifique et le stockage de données. Par ailleurs OpenStack est un projet actuellement supporté par plus de 25 firmes, dont Dell et Intel. Il offre une pile logicielle ouverte permettant de créer et exploiter un <em>cloud</em> privé sur la base d&#8217;infrastructures matérielles standards. Il est disponible sous la licence Apache 2.0. D&#8217;après la présentation du projet, la création d&#8217;un nouveau Framework ouvert pour le cloud est motivée par deux raisons principales :</p><ul><li>Le paysage du <em>cloud</em> est actuellement composé d&#8217;offres propriétaires, incompatibles entre elles et manquant de transparence, freinant ainsi l&#8217;expansion de cette nouvelle industrie. La création d&#8217;un framework Open Source permettrait donc une adoption plus massive.</li><li>La plupart des autres projets Open Source existant ne pouvaient satisfaire les énormes besoins de scalabilité exprimés par Rackspace. Seule Nebula, semblait correspondre au besoin.</li></ul><p>Pour l&#8217;instant le projet est disponible en &laquo;&nbsp;Developer preview&nbsp;&raquo;. Une première <em>release</em> sera disponible respectivement mi-septembre pour &laquo;&nbsp;OS Compute&nbsp;&raquo; et mi-octobre pour &laquo;&nbsp;OS Storage&nbsp;&raquo;.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="ContinuousDeliverylelivreleplu"></a>Continuous Delivery, le livre le plus important de 2010 ?</h4><p>Continuous Delivery, le livre de Jez Humble et David Farley, est disponible en version finale, en édition papier ou électronique (chez vos revendeurs habituels). Il traite d&#8217;un sujet qui tient à cœur de plus en plus d&#8217;acteurs de l&#8217;écosystème JEE : comment améliorer et dédramatiser les processus de build, de livraison et de déploiement d&#8217;un produit. Ce livre recueille déjà de nombreux lauriers. Dont ceux de Martin Fowler (directeur de la collection, donc forcément un peu partial), <a
title="qui en fait le livre technique le plus important de 2010" href="http://martinfowler.com/snips/201007301801.html">qui en fait le livre technique le plus important de 2010</a>.</p><p>De ce que nous avons pu en lire (<a
title="par exemple en RoughCuts ici" href="http://my.safaribooksonline.com/9780321670250">par exemple, en RoughCuts ici</a>), ces louanges sont justifiées : ce livre traite de tous les problèmes qui devraient animer n&#8217;importe quel consultant au démarrage d&#8217;un projet. Collaborer entre équipes, développer de manière incrémentale, tester, automatiser, déployer, tout cela dans un seul but, maximiser la qualité du produit délivré.</p><p>Ce livre donnera lieu a un grand <a
title="nombre de prsentations en confrence" href="http://continuousdelivery.com/2010/06/continuous-delivery-talks-2010/">nombre de présentations en conférence</a>, qui, si ce n&#8217;est déjà fait, devrait vous donner envie d&#8217;en faire votre livre de chevet avant la rentrée littéraire.</p><p>Pour en savoir plus, consultez le blog <a
title="Continuous Delivery" href="http://continuousdelivery.com/">Continuous Delivery</a></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/</link> <comments>http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#comments</comments> <pubDate>Tue, 13 Jul 2010 05:45:49 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[JDuchess]]></category> <category><![CDATA[JVM]]></category> <category><![CDATA[Kanban]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5022</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Agilité L&#8217;agilité à la sauce Pixar Evitez le multi-tâches dans les équipes de développement Le coin de la technique Développez vos applications Android sans écrire une ligne de code Mettez à jour votre JVM Evènements de notre communauté en France et à l&#8217;étranger Le [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#LagilitlasaucePixar">L&#8217;agilité à la sauce Pixar</a></li><li><a
href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#Evitezlemultitchesdanslesquipe">Evitez le multi-tâches dans les équipes de développement</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#DveloppezvosapplicationsAndroi">Développez vos applications Android sans écrire une ligne de code </a></li><li><a
href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#MettezjourvotreJVM">Mettez à jour votre JVM</a></li></ul><p><strong>Evènements  de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#LeprogrammeduDevoxxsedvoile">Le programme du Devoxx 2010 se dévoile</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="LagilitlasaucePixar"></a>L&#8217;agilité à la sauce Pixar</h4><p>C&#8217;est une question d&#8217;actualité avec la sortie de Toy Story 3 : mais comment Pixar fait-il pour cartonner à chaque nouveau film ? <a
title="InfoQ lve une partie du voile" href="http://www.infoq.com/news/2010/07/consistency-trust">InfoQ lève une partie du voile</a> : la cohérence construit la confiance. Derrière cette maxime &#8216;à l&#8217;américaine&#8217; se cache un processus créatif original : Pixar construit des équipes pluri-disciplinaires, qui travaillent ensemble (éventuellement durant plusieurs films) et qui créent des liens de confiance inaliénables. Chaque jour, l&#8217;équipe se réunit pour discuter du travail effectué la veille : critiques, remises en cause, les équipes travaillent dans un processus d&#8217;amélioration constante. Chaque membre de l&#8217;équipe est encouragé à donner son avis, même ses membres les plus juniors.<br
/> Ce mode de fonctionnement laisse la place à l&#8217;erreur. Comme chacun est impliqué, chacun peut se tromper. Les erreurs sont mêmes une des clés du processus créatif. L&#8217;essentiel est de se tromper rapidement, pour pouvoir corriger le tir.</p><p>Changez maintenant de point de vue, et regardez cet article sous l&#8217;angle du développement logiciel. N&#8217;y retrouve t&#8217;on pas un fort goût d&#8217;agilité ?</p><h4><a
name="Evitezlemultitchesdanslesquipe"></a>Evitez le multi-tâches dans les équipes de développement</h4><p>Toujours sur <a
title="Toujours sur InfoQ" href="http://www.infoq.com/articles/multitasking-problems">InfoQ</a>, Roger Brown nous met en garde contre les méfaits du traitement simultané de projets (tâches, user stories &#8230;) par une personne.<br
/> Le changement de contexte lorsque l&#8217;on passe d&#8217;une tâche à l&#8217;autre peut prendre plus ou moins de temps en fonction de la complexité de la tâche, du temps et de la nature de l&#8217;interruption. Le traitement d&#8217;un appel téléphonique, par exemple, pourra engendrer un délai d&#8217;un quart d&#8217;heure pour se remettre dans le contexte de la tâche précédente. D&#8217;autres types d&#8217;interruptions (travail sur une autre tâche de développement par exemple) peuvent nous faire perdre beaucoup plus de temps.<br
/> L&#8217;auteur nous explique que le travail en parallèle sur plusieurs projets implique généralement un surcoût induit par les changements de contexte pouvant représenter de 20% à plus de 50% du temps de travail lorsque nous travaillons simultanément sur plus de deux projets. Il est donc préférable de terminer une tâche (User Story par exemple) avant d&#8217;en commencer une autre, plutôt que de fragmenter son travail.<br
/> Les méthodes agiles comme Scrum ou le Kanban préconisent un nombre limité de User Stories ou de tâches en cours, et de ne pas en commencer une autre avant d&#8217;avoir atteint le statut &laquo;&nbsp;Done&nbsp;&raquo;.<br
/> Le cerveau humain ayant tendance à vouloir traiter plusieurs tâches en parallèle, Roger Brown préconise quelques techniques telles que le pair-programming afin d&#8217;aider les développeurs à rester concentrés sur leur tâche et à gagner ainsi en efficacité.<br
/> On peut aussi citer le <a
title="pomodoro" href="http://www.pomodorotechnique.com/">pomodoro</a> qui est une discipline consistant à se ménager un laps de temps de 25 minutes sans interruption, permettant de se focaliser sur une tâche et ainsi de gagner en efficacité.<br
/> L&#8217;auteur conclut en ajoutant que non seulement le traitement séquentiel des projets (tâches, user stories &#8230;) permet de gagner du temps, mais il permet aussi de créer des synergies entre les différents membres de l&#8217;équipe qui peuvent ainsi travailler de concert sur le projet.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="DveloppezvosapplicationsAndroi"></a>Développez vos applications Android sans écrire une ligne de code</h4><p>Google Labs vient d&#8217;annoncer l&#8217;arrivée d&#8217;App Inventor, un éditeur d&#8217;applications pour Android destiné aux non-développeurs. L&#8217;objectif est de permettre à tout androphile de <strong>dessiner</strong> sa propre application depuis le logiciel, puis de la transférer sur son smartphone.</p><blockquote><p><em>To use App Inventor, you do not need to be a developer. App Inventor requires NO programming knowledge. This is because instead of writing code, you visually design the way the app looks and use blocks to specify the app&#8217;s behavior.</em></p></blockquote><div><img
src="http://blog.xebia.fr/wp-content/uploads/2010/07/GAppInventor.png" border="0" alt="" /></div><p>Pour le moment, il n&#8217;est pas possible de s&#8217;inscrire. Vous pouvez seulement montrer votre intérêt en remplissant un formulaire dans lequel vous exprimerez votre enthousiasme pour l&#8217;utilisation d&#8217;AppInventor dans un cadre universitaire. Si vous n&#8217;avez rien à voir avec quelconque formation, vous pouvez toujours laisser les réponses vides.</p><p>En épluchant le site, on constate la forte volonté d&#8217;installer cet éditeur dans le monde universitaire, voire scolaire. En effet, il est fait mention à plusieurs reprises des possibilités de développements de jeux, d&#8217;applications communautaires ou d&#8217;outils d&#8217;interaction entre étudiants. Malgré tout, Google n&#8217;oublie les autres&#8230; le particuliers lambda, ou le collègue que nous sommes en précisant:</p><blockquote><p><em>The App Inventor team has created blocks for just about everything you can do with an Android phone, as well as blocks for doing &laquo;&nbsp;programming-like&nbsp;&raquo; stuff.</em></p></blockquote><p>Nous nous posons tout de même quelques questions à ce sujet:</p><ul><li>Google préfèrerait-il que nous apprenions à utiliser son logiciel plutôt qu&#8217;écrire du code <span
style="text-decoration: line-through;">propre</span> personnalisé?</li><li>Ne se cache-t-il pas un envie de maîtriser le code généré? (en y ajoutant des statistiques par exemple&#8230;)</li><li>N&#8217;y a-t-il pas un risque de voir proliférer sur le market des applications réalisées en 5 minutes, pleines de pubs et pauvres sur les plans fonctionnel et graphique? (comme HelloPurr, cf. <a
title="vido de dmo" href="http://www.youtube.com/watch?v=8ADwPLSFeY8&amp;feature=player_embedded">vidéo de démo</a>)</li></ul><p>Le futur nous le dira&#8230;</p><p>Du côté de la technique, les outils utilisés sont <a
title="OpenBlocks" href="http://dspace.mit.edu/handle/1721.1/41550">OpenBlocks</a> et <a
title="Kawa Language Framework" href="http://www.gnu.org/software/kawa/">Kawa Language Framework</a>. Le premier est le fruit de la thèse de Ricarose Roque (MIT) : une librairie Java permettant de programmer des systèmes à l&#8217;aide de blocs visuels. Le second est utilisé par le compilateur pour traduire en bytecode les blocs graphiques.</p><p>En attendant d&#8217;avantage d&#8217;informations et pourquoi pas un article plus complet sur l&#8217;outil, vous trouverez déjà quelques tutoriaux sur le site.</p><p>source : <a
title="site de lditeur" href="http://appinventor.googlelabs.com/about/">site de l&#8217;éditeur</a></p><h4><a
name="MettezjourvotreJVM"></a>Mettez à jour votre JVM</h4><p>Après une dernière release qui corrigeait un <a
title="problème de sécurité" href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#FailledescuritdansOracleJava">problème de sécurité</a>, Oracle nous invite à <a
title="télécharger" href="http://java.sun.com/javase/downloads/index.jsp">télécharger</a> la release 21 qui, outre la correction de <a
title="bugs" href="http://java.sun.com/javase/6/webnotes/BugFixes6u21.html">bugs</a> (mais pas de correction liée à la sécurité), apporte des améliorations sur la JVM HotSpot et VisualVM.</p><p>Sur la Java HostSpot VM, les améliorations portent sur la compression des pointeurs d&#8217;objets, <em>escape analysis</em> (qui améliore la gestion des piles), la gestion du cache sur le byte code, sur le garbage collector CMS (Concurrent Mark-Sweep) et G1. Pour rappel, G1 est le nouveau garbage collector en préparation pour la JDK 7 mais déjà utilisable dans la version 6 depuis la release 17. Pour l&#8217;activer il faut passer les options <code>-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC</code>.</p><p>La version 1.2.2 de VisualVM, sortie il y a quelques mois, est à présent incluse dans la distribution de Java SE. Elle apporte beaucoup d&#8217;améliorations sur l&#8217;analyse de la mémoire et sur le profilage.</p><p>Enfin pour les développeurs de RIA java, un <em>listener</em> a été ajouté pour suivre l&#8217;évolution du chargement de l&#8217;application. Plus de détails <a
title="ici" href="http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/deployment/doingMoreWithRIA/customizeRIALoadingExperience.html">ici</a>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="LeprogrammeduDevoxxsedvoile"></a>Le programme du Devoxx 2010 se dévoile</h4><p>J&#8217;espère que vous avez créé une règle sur votre outil de mailing préféré qui décline toute demande de réunion sur la période du 15 au 19 novembre 2010 car c&#8217;est &#8230; Devoxx!<br
/> À moins d&#8217;être parti 8 ans en mission dans l&#8217;océan arctique sur un brise glace, vous ne pouvez pas ne pas connaître Devoxx. C&#8217;est LA conférence européenne spécialisée sur LA technologie (i.e. Java) qui se déroule tous les ans à Anvers en Belgique.</p><p>Tout le gratin des meilleurs speakers et spécialistes sera présent dont certains français: Antonio Goncalves, Guillaume Laforge, Emmanuel Bernard pour ne citer qu&#8217;eux, mais aussi des incontournables comme Heinz Kabutz, John Smart ou bien Michael Cote.<br
/> Mais ce n&#8217;est pas tout! En effet, un BoF (<a
title="Bird of Feather" href="http://en.wikipedia.org/wiki/Birds_of_a_Feather_(computing)">Bird of Feather</a>) organisé par les JDuchess se prépare.</p><p>Le programme commence à prendre forme. Vous pouvez commencer à saliver sur des conférences plus intéressantes les unes que les autres avec quelques titres accrocheurs:</p><ul><li>JAX-RS, Java EE 6, and the future,</li><li>Reflection Madness,</li><li>Improve the performance of your Spring app,</li><li>HTML 5 Fact and Fiction,</li><li>Comparing JVM Web Frameworks,</li><li>Groovy update, ecosystem, and skyrocketing to the cloud with App Engine and Gaelyk,</li><li>Restfulie: quit pretending, use the web for real,</li><li>Women in IT an unconference,</li><li>etc.</li></ul><p>Dans le programme de cette année, c&#8217;est surtout la présence de plus d&#8217;une dizaine de sessions dédiées aux technologies NoSQL et Cloud que l&#8217;on retiendra. On se souvient en effet que l&#8217;édition 2009 de cette conférence n&#8217;avait proposé qu&#8217;une trop courte session d&#8217;introduction à NoSQL suivie d&#8217;un BOF. Cette augmentation sensible de la part accordée à ces technologies témoigne de leur popularité croissante en 2010. Une fois de plus Devoxx s&#8217;affirme comme le baromètre de notre écosystème !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>KawaCamp jeudi 27 chez Xebia</title><link>http://blog.xebia.fr/2010/05/24/kawacamp-jeudi-27-chez-xebia/</link> <comments>http://blog.xebia.fr/2010/05/24/kawacamp-jeudi-27-chez-xebia/#comments</comments> <pubDate>Mon, 24 May 2010 12:21:53 +0000</pubDate> <dc:creator>Cyrille Le Clerc</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[KawaCamp]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[TDD]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4711</guid> <description><![CDATA[Xebia a le plaisir d&#8217;accueillir le deuxième KawaCamp dans ses locaux jeudi 27 Mai 2010. Qu&#8217;est ce qu&#8217;un KawaCamp ? C&#8217;est un BarCamp dédié aux sujets qui gravitent autour de l&#8217;écosystème Java ! Et qu&#8217;est-ce qu&#8217;un BarCamp alors ? Pour résumer voici la définition de Wikipedia. Nous allons nous retrouver entre passionnés pour discuter de [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2010/05/barcamp.png" alt="barcamp" title="barcamp" style="margin: 1em 1em 1em 2em; float: right;" /><br
/> Xebia a le plaisir d&#8217;accueillir le <a
href="http://barcamp.org/KawaCampParis2" title="deuxime KawaCamp" >deuxième KawaCamp</a> dans ses locaux jeudi 27 Mai 2010.</p><p>Qu&#8217;est ce qu&#8217;un KawaCamp ? C&#8217;est un BarCamp dédié aux sujets qui gravitent autour de l&#8217;écosystème Java ! Et qu&#8217;est-ce qu&#8217;un BarCamp alors <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ? Pour résumer voici la <a
href="http://fr.wikipedia.org/wiki/BarCamp" title="dfinition de Wikipedia" >définition de Wikipedia</a>. Nous allons nous retrouver entre passionnés pour discuter de sujets qui nous tiennent à coeur autour de tables rondes/ateliers durant lesquels chacun participe et donne son point de vue.</p><p>Les sujets sont choisis grâce aux centres d&#8217;intérêts que chacun exprime sur la <a
href="http://barcamp.org/KawaCampParis2" title="page dinscription" >page d&#8217;inscription</a>. Cette session s&#8217;oriente vers les sujets d&#8217;actualité avec beaucoup de <strong>HTML5</strong> et d&#8217;<strong>Android</strong> sans oublier <strong>NoSQL</strong>, <strong>TDD</strong>, <strong>Agilité</strong>, &#8230;</p><p>Si vous aimez les discussions passionnées autour d&#8217;un verre, le KawaCamp vous comblera en organisant nos débats ! <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><p><strong>Informations pratiques :</strong></p><ul><li>La page d&#8217;inscription : <a
href="http://barcamp.org/KawaCampParis2" title="Kawa Camp Paris 2" >Kawa Camp Paris 2</a>.</li><li>Les organisateurs : Luc Bizeul et Philippe Antoine.</li><li>La date : Jeudi 27 Mai 2010 à partir de 19h00.</li><li>L&#8217;adresse : <a
href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=156+Boulevard+Haussmann,+75008+Paris,+France&#038;sll=48.884769,2.348363&#038;sspn=0.009313,0.022681&#038;ie=UTF8&#038;hq=&#038;hnear=156+Boulevard+Haussmann,+75008+Paris,+Ile-de-France,+France&#038;ll=48.875696,2.312107&#038;spn=0.009314,0.022681&#038;z=16&#038;iwloc=A" title="Xebia  156 boulevard Haussmann 75008 Paris" >Xebia &#8211; 156 boulevard Haussmann, 75008 Paris</a>.</li></ul><p><strong>Ils en parlent :</strong></p><ul><li><a
href="http://www.frandroid.com/18124/barcamp-kawacampparis2/" title="FrAndroid  Barcamp  KawaCampParis2 " >FrAndroid &#8211; Barcamp : KawaCampParis2 </a>.</li><li><a
href="http://groups.google.com/group/duchessfr/msg/b90e75d9d7c08482" title="Le Calendrier des JDuchess" >Le Calendrier des JDuchess</a>.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/05/24/kawacamp-jeudi-27-chez-xebia/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/</link> <comments>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#comments</comments> <pubDate>Mon, 03 May 2010 22:12:56 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[jBPM]]></category> <category><![CDATA[JCP]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[salesforce]]></category> <category><![CDATA[scala]]></category> <category><![CDATA[scalate]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[thread]]></category> <category><![CDATA[vmforce]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4516</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII (VMware + Spring) + SalesForce = VMforce Refonte de jBPM chez JBoss Josh Bloch : le futur de Java, sous la houlette de Oracle Le coin de la technique Scalate : un moteur de template pour Scala Le multitâche sur [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#VMwareSpringSalesForceVMforce">(VMware + Spring) + SalesForce = VMforce</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#RefontedejBPMchezJBoss">Refonte de jBPM chez JBoss</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#JoshBlochlefuturdeJavasouslaho">Josh Bloch : le futur de Java, sous la houlette de Oracle</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#ScalateunmoteurdetemplatepourS">Scalate : un moteur de <em>template</em> pour Scala</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#LemultitchesurAndroid">Le multitâche sur Android</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#Scaladaysintgralementdisponibl">Scaladays 2010 intégralement disponible en vidéo !</a></li></ul><h4><a
name="VMwareSpringSalesForceVMforce"></a>(VMware + Spring) + SalesForce = VMforce</h4><p>Le 27 avril dernier, Paul Maritz (CEO de VMware), Marc Benioff (CEO de SalesForce) et Rod Johnson (GM de SpringSource) ont fait une <a
href="http://www.salesforce.com/video/vmforce-launch-sf.jsp" title="annonce" >annonce</a> conjointe pour le lancement d&#8217;une nouvelle solution cloud: <strong>VMforce</strong>.</p><p>Jusqu&#8217;à maintenant SalesForce était un des acteurs majeurs des SaaS (<em>Software as a Service</em>), spécialisé dans les CRM. Mais la montée en puissance de concurrents dans le cloud a poussé l&#8217;entreprise à revoir sa stratégie. Pour créer ou personnaliser des applications de SalesForce, les développeurs devaient s&#8217;appuyer exclusivement sur la plateforme de développement Force.com et sur son langage maison, l&#8217;<a
href="http://wiki.developerforce.com/index.php/Apex_Code:_The_World's_First_On-Demand_Programming_Language" title="Apex Code" >Apex Code</a>, relativement confidentiel. Il faut donc voir ce partenariat, avant tout, comme une ouverture des services de SalesForce au monde Java et en particulier celui de SpringSource.</p><p>Concernant Java, il est intéressant de constater que ce langage devient celui de référence pour toute solution cloud qui veut se populariser ou se standardiser. Il y a plus d&#8217;un an, Google avait subi de fortes pressions de la part de la communauté pour pouvoir utiliser Appengine avec Java en plus de Python. Encore plus étonnant, la solution cloud Azure de Microsoft propose également des <a
href="http://www.windowsazure4j.org/" title="ponts" >ponts</a> vers Java.</p><p>D&#8217;après <a
href="http://blog.springsource.com/2010/04/27/vmforce-spring-cloud/" title="Rod Johnson" >Rod Johnson</a> Spring sera vraiment au cœur de cette nouvelle offre. Son serveur tomcat, tcServer, constituera l&#8217;environnement d&#8217;exécution. SpringSource Tool Suite jouera un rôle important pour faciliter l&#8217;interopérabilité avec Force.com. On nous promet, entre autres, du <em>drag and drop</em> pour déployer directement des applications. Cela peut prêter à sourire mais ce genre de détail peut parfois faire basculer certains DSI, la véritable cible de cette nouvelle offre, qui cherchent les solutions les mieux intégrées aux environnements utilisés par leurs développeurs.</p><div
align="center"><img
class="size-full wp-image-4518" title="vmforceCloud" src="http://blog.xebia.fr/wp-content/uploads/2010/05/vmforceCloud.png" alt="Ecosysteme VMforce" width="500" height="385" /></div><p>De son côté Force.com apporte un accès à sa base de donnée relationnelle et à de nombreux services de rapport et de partage. De plus le développement de services orientés <em>réseau social</em>, avec des interfaces par exemple avec Twitter ou Facebook, de ponts vers les API Google ou de portage vers les téléphones mobiles, constitue une des originalités de SalesForce et un des points forts par rapport à ses concurrents.</p><p>Cette annonce peut en étonner certains qui avaient suivi <a
href="http://googleappengine.blogspot.com/2008/12/salesforcecom-announces-forcecom-for.html" title="celle de l'intégration de SalesForce dans Google Appengine" >celle de l&#8217;intégration de SalesForce dans Google AppEngine</a>, d&#8217;abord dans sa version Python puis Java. Le peu d&#8217;écho qu&#8217;elle a eu semble souligner le peu de synergies qui existent dans l&#8217;association de ces deux solutions et VMforce a, sur le papier, tout pour remplacer AppEngine comme PaaS (<em>Platform as a Service</em>) de référence. Bien sûr tout cela reste encore à confirmer car le lancement véritable est attendu cet automne (vous pouvez vous pré-inscrire sur cette <a
href="http://www.vmforce.com/" title="page" >page</a>). Est-ce que l&#8217;intégration dans STS tiendra ses promesses ? Est-ce que cette solution arrivera à convaincre les entreprises d&#8217;externaliser une partie de leur système d&#8217;information ?</p><h4><a
name="RefontedejBPMchezJBoss"></a>Refonte de jBPM chez JBoss</h4><p>Tout commença il y a un mois par <a
href="http://enterprisebpm.blogspot.com/2010/03/open-letter-to-jbpm-community.html" title="une lettre ouverte" >une lettre ouverte</a> à la communauté jBPM pour annoncer le départ de JBoss de Tom Baeyens et Joram Barrez, respectivement <em>project leader</em> et <em>core developer</em> du projet de gestion de <em>workflow</em> de l&#8217;éditeur. Quelques jours plus tard, Tom Baeyens <a
href="http://processdevelopments.blogspot.com/2010/03/alive-and-kicking.html" title="explique" >explique</a> qu&#8217;ils souhaitent développer, avec Joram Barrez, leur propre plate-forme BPM, qui supportera BPMN 2.0, adoptera une licence Apache 2.0 et sera adaptée &laquo;&nbsp;aux nouvelles infrastructures IT&nbsp;&raquo;. Le flou de cette dernière mention s&#8217;éclaircit en partie lorsque nous croisâmes Tom Baeyens à la conférence <a
href="http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql/">NoSQL Europe</a> de Londres ; il nous expliqua s&#8217;intéresser de près aux problématiques de persistance liées au <em>Cloud Computing</em>. Cette vision rafraichissante du BPM sera particulièrement intéressante à suivre&#8230;</p><p>Du coté de JBoss, l&#8217;affaire a entrainé un vaste projet de refonte. Ainsi Alejandro Guizar, nouveau <em>project lead</em> de jBPM, a publié deux semaines plus tard <a
href="http://enterprisebpm.blogspot.com/2010/04/announcing-jbpm-5.html" title="l'annonce du développement de jBPM 5" >l&#8217;annonce du développement de jBPM 5</a> qui <a
href="http://community.jboss.org/wiki/jBPM5RequestforComments" title="consistera" >consistera</a> en une fusion de jBPM et de <a
href="http://www.jboss.org/drools/drools-flow.html" title="Drools Flow" >Drools Flow</a>. Ceci aboutirait donc à un <em>rule driven process engine</em>, nom donné aux moteurs BPM fusionnés avec un moteur de règles. Cette vision constitue la tendance depuis quelques temps déjà sur ce marché, mais jBPM et Drools <a
href="http://blog.xebia.fr/2009/04/27/revue-de-presse-xebia-106/#VerslmergencedeRuledrivenproce" title="n'avaient pas su prendre ce virage" >n&#8217;avaient pas su prendre ce virage</a> pour cause d&#8217;avis divergents entre les deux équipes. Cet évènement semble donc avoir été l&#8217;occasion d&#8217;une remise en question globale. Mark Little, CTO de JBoss, <a
href="http://community.jboss.org/blogs/mark.little/2010/04/23/the-future-of-workflow-in-jboss" title="sexprimait" >s&#8217;exprimait</a> il y a une semaine sur l&#8217;avenir de la brique BPM de JBoss. Il reprenait ces faits en ajoutant une nouvelle importante : jBPM 4 ne deviendra pas un produit supporté par JBoss au sein de sa plate-forme commerciale SOA. Ce sera le rôle de jBPM 5.</p><p>jBPM est le moteur BPM Open Source majeur sur le marché. Ce changement de plan est donc important tant pour la communauté qui a déjà commencé à investir sur jBPM 4, sorti <a
href="http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#jBPMestdisponible" title="il y a 10 mois" >il y a 10 mois</a>, que pour JBoss qui avait fortement investi dans jBPM 4. Ce dernier avait d&#8217;ailleurs connu une période de gestation particulièrement longue. Bien sûr ces investissements de part et d&#8217;autre ne sont pas perdus pour autant puisque cette nouvelle version s&#8217;appuiera pour partie sur l&#8217;existant, mais elle peut remettre en question certains choix stratégiques pour les entreprises.</p><h4><a
name="JoshBlochlefuturdeJavasouslaho"></a>Josh Bloch : le futur de Java, sous la houlette de Oracle</h4><p><a
href="http://www.infoq.com/news/2010/04/bloch_java_future" title="Pour InfoQ Josh Bloch" >Pour InfoQ, Josh Bloch</a>, l&#8217;auteur du fameux &laquo;&nbsp;Effective Java&nbsp;&raquo;, fait part de ses préoccupations au sujet du futur de Java. Tout d&#8217;abord, il constate que son évolution a ralenti ces derniers mois, pour deux raisons principales :</p><ul><li>le manque d&#8217;implication de Sun dans les travaux autour de Java 7, qui a conduit à sans cesse repousser sa date de sortie.</li><li>la confusion qui règne autour des différentes licences utilisées par le JCP, qui amène parfois des séparations étranges comme celle qui a eu lieu entre OpenJDK et Harmony. De plus, le support de certains éditeurs (Google a choisi Harmony comme base aux librairies Android) ne fait qu&#8217;ajouter à la confusion et à la discorde.</li></ul><p>Oracle, en meilleure santé financière que Sun, peut sortir le JCP de l&#8217;impasse en soutenant des réformes de fond, et en portant un regard neuf sur un certain héritage un peu &#8216;poussiéreux&#8217;. En particulier, Oracle a déjà proposé en 2007 de réformer les règles de propriété intellectuelle du JCP pour qu&#8217;elles deviennent plus permissives pour tous les composants de base (avec une licence de type Apache ou BSD).<br
/> Pour cette raison, Josh Bloch aimerait voir Oracle réclamer le bâton de commandeur qui était la propriété de Sun.</p><p>D&#8217;autre part, les statistiques montrent une baisse de l&#8217;utilisation de Java, au profit de C. Malgré cela, aucun des &laquo;&nbsp;nouveaux langages&nbsp;&raquo; (Scala, Ruby&#8230;) n&#8217;émerge suffisamment pour apparaitre dans ces statistiques et expliquer ce désamour. Cependant, ils restent des vecteurs d&#8217;innovation qu&#8217;il faut surveiller.<br
/> Et contrairement à ce que disent les statistiques, Josh Bloch ne pense que pas Java, aussi bien en tant que langage qu&#8217;en tant que plate forme, soit sur le déclin. Il voit certes un risque de déclin, mais il compte sur Oracle et sur la communauté pour l&#8217;enrayer. D&#8217;ailleurs, il ne voit pas émerger d&#8217;alternative crédible au langage et à la JVM. D&#8217;autant plus qu&#8217;Oracle ne devrait pas prendre le risque de tenter de mettre la JVM sous licence.<br
/> En ce qui concerne la fusion JRockit / Hotspot, elle est sur le papier intéressante, mais Sun n&#8217;est jamais parvenu à réaliser une telle fusion, ne serait ce que pour les JVM client et serveur. Pour le moins, ses coûts seront élevés.</p><p>Pour finir sur une note positive, Josh Bloch rappelle que Java a connu quelques succès retentissants ces derniers mois : Google Collections, Guice, les nouveaux langages de la JVM, et Android. En comptant sur des actions décisives d&#8217;Oracle, et la coopération d&#8217;une communauté élargie, le futur de java s&#8217;annonce (malgré tout ?) brillant.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="ScalateunmoteurdetemplatepourS"></a>Scalate : un moteur de <em>template</em> pour Scala</h4><p>Voilà une bonne occasion de vous parler d&#8217;un framework qui monte dans le monde Scala, à savoir <a
href="http://github.com/scalate/scalate" title="Scalate" >Scalate</a>. James Strachan <a
href="http://macstrac.blogspot.com/2010/04/scalate-11-released.html" title="a annoncé sa sortie" >a annoncé sa sortie</a> fin de semaine dernière en <a
href="http://scalate.fusesource.org/" title="version 1.1" >version 1.1</a>. Le détail des nouveautés se trouve <a
href="http://scalate.assembla.com/spaces/scalate/milestones/191837-1-1" title="ici" >ici</a>.</p><p>Scalate, pour Scala Template Engine, est un moteur de template qui s&#8217;appuie sur Scala 2.8 et permet de générer plusieurs type de documents <em>(texte, balises&#8230;)</em>. Il est actuellement utilisable :</p><ul><li>de manière standalone,</li><li>dans des Servlets,</li><li>dans <a
href="https://jersey.dev.java.net/" title="Jersey" >Jersey</a>,</li><li>dans Play! Framework grâce au projet <a
href="http://github.com/pk11/play-scalate" title="PlayScalate" >Play-Scalate</a>,</li><li>et dans <a
href="http://camel.apache.org/scalate.html" title="Apache Camel" >Apache Camel</a>,</li><li>avec prochainement l&#8217;intégration à <a
href="https://liftweb.assembla.com/spaces/liftweb/tickets/475" title="Lift" >Lift</a>.</li></ul><p>Scalate supporte les templates de type <a
href="http://scalate.fusesource.org/documentation/ssp-reference.html" title="SSP" >SSP</a> pour Scala Server Pages dont Velocity ou bien encore JSP. Ainsi Scalate supporte <code>${ }</code>, <code>&lt;%= %&gt;</code>, <code>&lt;% %&gt;</code> ou bien encore <code>#for</code>, <code>#if</code> et <code>#{ }</code>. L&#8217;autre format géré est le <a
href="http://scalate.fusesource.org/documentation/scaml-reference.html" title="Scaml" >Scaml</a> pour Scala Markup Language qui est un dialecte <em>(<a
href="http://haml-lang.com/" title="haml" >haml</a>)</em> pour simplifier la description d&#8217;un document web. Petit exemple :</p><pre class="brush: java; title: ; notranslate">
// ssp template
&lt;p&gt;
   &lt;%= List(&quot;hi&quot;, &quot;there&quot;, &quot;reader!&quot;).mkString(&quot; &quot;) %&gt;
   ${ &quot;yo &quot;+(3+4) }
&lt;/p&gt;
// ssp rendering
&lt;p&gt;
   hi there reader!
   yo 7
&lt;/p&gt;
// scaml template
%gee
   %whiz
      Wow this is cool!
// scaml rendering
&lt;gee&gt;
   &lt;whiz&gt;
      Wow this is cool!
   &lt;/whiz&gt;
&lt;/gee&gt;
</pre><p>Il n&#8217;y a plus qu&#8217;à <a
href="http://scalate.fusesource.org/download.html" title="jouer avec" >jouer avec</a> !</p><h4><a
name="LemultitchesurAndroid"></a>Le multitâche sur Android</h4><p>Qui aurai cru il y a encore peu que nous disposerions aujourd&#8217;hui d&#8217;équipements de poche ayant les capacités de faire tourner plusieurs applications riches simultanément, en Java qui plus est, malgré sa réputation de glouton en mémoire ? Ce temps là est révolu et Android montre combien un système basé sur Java peut se montrer performant. Néanmoins, pour atteindre cet objectif, il aura fallu que Google mette au point de nombreuses techniques. C&#8217;est ce que nous explique <a
href="http://android-developers.blogspot.com/2010/04/multitasking-android-way.html" title="cet article" >cet article</a> du <em>Android Developers blog</em>, le blog Google de référence sur le sujet.<br
/> Les objectifs (simplifier la vie de l&#8217;utilisateur au maximum en supprimant la notion de &laquo;&nbsp;fermer&nbsp;&raquo; une application&#8230;) et les contraintes (pas de swap&#8230;) sont expliqués ainsi que leurs conséquences sur la gestion de la mémoire dans les applications et l&#8217;OS.</p><p>on découvre certaines spécificités qui peuvent sembler étonnantes au commun des programmeurs. ainsi, des applications qui apparaissent en cours d&#8217;exécution peuvent n&#8217;avoir en fait aucun processus en cours ! Un autre point très intrigant est que les applications sont généralement tuées brutalement ! L&#8217;astuce consiste à garder la trace des parties de l&#8217;application visibles, les <a
href="http://developer.android.com/reference/android/app/activity.html" title="activity" ><em>Activity</em></a>, pour les redémarrer avec les infos de leur dernier état si besoin. si l&#8217;utilisateur n&#8217;y voit que du feu, le programmeur expérimenté sera lui surpris par ce fonctionnement peu orthodoxe mais visiblement efficace.</p><p>L&#8217;article va ensuite plus loin en explorant la façon dont sont gérés les services, à travers les notions de <a
href="http://developer.android.com/reference/android/content/BroadcastReceiver.html" title=""Broadcast Receivers"" ><em>Broadcast Receivers</em></a> et de <a
href="http://developer.android.com/reference/android/app/Service.html" title="Services" ><em>Services</em></a>. Les  premiers permettent de  réagir ponctuellement et brièvement à des stimuli externes alors que les seconds effectuent des opérations longues mais sans garanties aucune quant à leur survie: Android peut les tuer en cas de besoin.</p><p>Rassurez-vous, tout n&#8217;est pas complètement nouveau dans Android et certains concepts restent identiques à ce que l&#8217;on connaît en Java <em>desktop</em>. Sur <a
href="www.developpez.com" title="developpez.com" >developpez.com</a> Davy Leggieri nous offre 2 bons articles: l&#8217;un sur <a
href="http://davy-leggieri.developpez.com/tutoriels/android/threads-composants-application/" title="les threads composants une application Android" >les threads composants une application Android</a> et l&#8217;autre plus précisément centré sur <a
href="http://davy-leggieri.developpez.com/tutoriels/android/ui-thread/" title="l'UI Thread" >l&#8217;UI Thread</a>. Cela rappellera des souvenirs aux développeurs <a
href="http://fr.wikipedia.org/wiki/Swing_%28Java%29" title="Swing" >Swing</a> qui, avec son <a
href="http://en.wikipedia.org/wiki/Event_dispatching_thread" title="Event Dispatch Thread" >Event Dispatch Thread</a>, impose des contraintes similaires. Les environnements changent, mais certains fondamentaux restent !</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Scaladaysintgralementdisponibl"></a>Scaladays 2010 intégralement disponible en vidéo !</h4><p>Si comme moi vous n&#8217;avez pas pu vous rendre au <a
href="http://days2010.scala-lang.org/" title="Scaladays 2010" >Scaladays 2010</a> de Lausanne, réjouissez-vous : toutes les vidéos sont déjà disponibles à <a
href="http://days2010.scala-lang.org/node/136" title="cette adresse" >cette adresse</a> !<br
/> Du <a
href="http://days2010.scala-lang.org/node/138/137" title="discours d'ouverture de Martin Odersky" >discours d&#8217;ouverture de Martin Odersky</a> en passant par les <a
href="http://days2010.scala-lang.org/node/138/140" title="Parallel Collections" >Parallel Collections</a> ou bien encore une session sur <a
href="http://days2010.scala-lang.org/node/138/159" title="Scala at LinkedIn" >Scala at LinkedIn</a>, redécouvrez les grands moments de cette première grosse conférence sur Scala. Les vidéos sont disponibles en basse et haute qualité et, pour les nomades, des verions <i>.mp4</i> sont téléchargeables.<br
/> Je sais déjà ce que je vais regarder dans le bus dans les prochaines semaines <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br
/> Et pour un petit résumé de ces deux jours, je vous renvoie vers le blog de <a
href="http://fanf42.blogspot.com/2010/04/summary-of-my-scala-days-2010.html" title="Franois" >François</a> pour un article qui ne peut que faire regretter de pas y être allé&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Maven et Android, comment utiliser le plugin ?</title><link>http://blog.xebia.fr/2010/03/23/maven-et-android-comment-utiliser-le-plugin/</link> <comments>http://blog.xebia.fr/2010/03/23/maven-et-android-comment-utiliser-le-plugin/#comments</comments> <pubDate>Tue, 23 Mar 2010 13:06:35 +0000</pubDate> <dc:creator>Erwan Alliaume</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Mobilité]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[build]]></category> <category><![CDATA[dépendances]]></category> <category><![CDATA[Maven]]></category> <category><![CDATA[maven definitive guide]]></category> <category><![CDATA[mutlmodules]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4258</guid> <description><![CDATA[Si vous êtes développeur Android, vous aurez sans doute remarqué qu&#8217;aucun mécanisme ne permet de partager des ressources entre plusieurs projets. Étant l&#8217;auteur d&#8217;une petite dizaine d&#8217;applications, la gestion des ressources communes commence à devenir un véritable problème. En effet, s&#8217;il est très simple de partager du code Java par l&#8217;intermédiaire de jars, il vous [...]]]></description> <content:encoded><![CDATA[<p>Si vous êtes développeur Android, vous aurez sans doute remarqué qu&#8217;aucun mécanisme ne permet de partager des ressources entre plusieurs projets. Étant l&#8217;auteur d&#8217;une <a
href="http://www.android-mini-market.com/" title="petite dizaine dapplications" >petite dizaine d&#8217;applications</a>, la gestion des ressources communes commence à devenir un véritable problème. En effet, s&#8217;il est très simple de partager du code Java par l&#8217;intermédiaire de jars, il vous est impossible de partager des images ou des layouts entre plusieurs applications. Ceci vient de la gestion même des ressources dans un projet Android et de leur utilisation. En effet chaque ressource est référencée sous la forme d&#8217;une constante dans un fichier &#8216;R.java&#8217; automatiquement généré. C&#8217;est cette constante que vous devez utiliser pour utiliser vos différentes ressources dans vos applications. Comme il n&#8217;est pas possible d&#8217;inclure un projet Android dans un autre, nous somme bloqués.</p><p>Étonnamment, ce besoin ne semble pas intéresser plus que cela la communauté Android. En consultant la liste des <a
href="http://b.android.com/" title="demandes d'évolutions" >demandes d&#8217;évolutions</a>, seule une <a
href="http://code.google.com/p/android/issues/detail?id=3987&#038;q=include%20external%20apk&#038;colspec=ID%20Type%20Status%20Owner%20Summary%20Stars" title="fiche" >fiche</a> fait référence à ce type de besoin. Cette demande me paraissant pourtant légitime, j&#8217;en ai discuté avec Romain Guy, l&#8217;un des développeurs Android. Selon lui, la plateforme Android ne permet pas de répondre directement à cette problématique. Tournons-nous donc vers nos outils de builds.</p><p>Cet article présente une manière de configurer un build Maven sur une application Android. Après la lecture de cet article, vous saurez comment construire et déployer un projet Android en utilisant Maven, mais également comment découper vos applications pour partager du code entre votre application Android et sa partie serveur, et comment partager du code et des ressources entre différentes applications Android. Le contenu de cet article est largement inspiré  de la <a
href="http://maven-definitive-guide.fr/maven-reference-fr/site/reference/android-dev.html" title="traduction officielle du chapitre Android du Maven Reference Guide" >traduction officielle du chapitre Android du Maven Reference Guide</a> que je viens tout juste de terminer.</p><h3><a
name="LepluginMavenAndroid"></a>Le plugin Maven Android</h3><p>Le plugin Maven Android permet de construire, déployer et publier des applications Android avec Maven. Vous pouvez ainsi tirer parti des fonctionnalités Maven dans une application Android. Voyons comment utiliser un projet multi-module et la gestion des dépendances pour arriver d&#8217;une part à factoriser du code entre l&#8217;application Android et ses services web côté serveur, d&#8217;autre part à externaliser les assets/ressources communs entre plusieurs projets Android.</p><p>Pour installer ce plugin, récupérez-les <a
href="http://code.google.com/p/maven-android-plugin/" title="sources du projet sur google code" >sources du projet sur google code</a> et installez les artefacts dans votre dépôt :</p><pre class="brush: java; title: ; notranslate">
git clone git://github.com/jayway/maven-android-plugin.git
cd maven-android-plugin
mvn clean install
</pre><h3><a
name="PrparezvotreenvironnementAndro"></a>Préparez votre environnement Android pour Maven</h3><p>Avant de pouvoir utiliser Maven pour construire vos applications Android, quelques tâches préalables sont nécessaires :</p><ul><li>Installation du SDK Android</li><li>Installation des jars de l&#8217;API Android dans un dépôt (local et/ou distant)</li><li>Configuration de Maven pour simplifier l&#8217;utilisation du Maven Android Plugin</li></ul><h4><a
name="InstallationduSDKAndroid"></a>Installation du SDK Android</h4><p>Le plugin Android Maven nécessite la présence du SDK Android dans votre environnement de développement. La variable d&#8217;environnement <code>ANDROID_HOME</code> doit être configurée pour pointer vers le répertoire d&#8217;installation du SDK Android. Ce SDK doit être installé en suivant les consignes disponibles sur le site officiel <a
href="http://developer.android.com/sdk/index.html" title="Android Developer" >Android Developer</a>.</p><p>En plus du SDK, vous devez également installer les différentes versions des plates-formes dont vous avez besoin pour votre développement. Il s&#8217;agit des différentes versions des runtimes Android dont vous désirez vous servir. Par défaut, vous pouvez choisir de toutes les télécharger.  Pour en savoir plus à ce sujet, rendez-vous également sur la <a
href="http://developer.android.com/sdk/adding-components.html" title="documentation officielle" >documentation officielle</a>.</p><p>Enfin, afin de faciliter l&#8217;utilisation des outils du SDK en ligne de commande, vous pouvez rajouter le répertoire <code> ANDROID_HOME/tools</code> à votre <code>PATH</code>.</p><h4><a
name="InstallationdesartefactsAndroi"></a>Installation des artefacts Android dans votre dépôt</h4><p>Une fois que le SDK est installé, vous devez mettre à disposition les différents JARs d&#8217;API dans un dépôt Maven. L&#8217;outil <a
href="http://github.com/mosabua/maven-android-sdk-deployer" title="Maven Android SDK Deployer" >Maven Android SDK Deployer</a> permet d&#8217;effectuer cette tâche. Une fois l&#8217;outil téléchargé, rendez vous dans son répertoire et tapez la commande <code>mvn clean install</code>. Par défaut, cette commande installe les JARs <code>android.jar</code> et <code>maps.jar</code> dans votre dépôt local. Cet outil vous permet de n&#8217;installer qu&#8217;une partie des plateformes dans votre dépôt ou de les déployer dans sur un serveur distant, si ces fonctionnalités vous intéressent, rendez-vous à <a
href="http://maven-definitive-guide.fr/maven-reference-fr/site/reference/android-dev-sect-repository-install.html" title="ladresse suivante" >l&#8217;adresse suivante</a></p><h4><a
name="ConfigurationdeMavenpourAndroi"></a>Configuration de Maven pour Android</h4><p>Afin de pouvoir utiliser les goals du plugin Maven Android à partir de la ligne de commande en utilisant la version courte du nom du plugin &#8216;android&#8217;, vous devez ajouter l&#8217;extrait de configuration suivant dans votre fichier <code>settings.xml</code>.</p><pre class="brush: xml; title: ; notranslate">
&lt;pluginGroups&gt;
   &lt;pluginGroup&gt;
     com.jayway.maven.plugins.android.generation2
   &lt;/pluginGroup&gt;
&lt;/pluginGroups&gt;
</pre><h3><a
name="UtilisationduMavenAndroidPlugi"></a>Utilisation du Maven Android Plugin dans un projet simple</h3><p>Une fois que votre environnement est correctement configuré, vous pouvez configurer Maven pour construire vos applications Android. Pour cela, ajoutez ce <code>pom.xml</code> à la racine de votre application.</p><pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  &lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;
           xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
           xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd&quot;&gt;
      &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
      &lt;groupId&gt;fr.xebia.android.demo.simple&lt;/groupId&gt;
      &lt;artifactId&gt;simple-android-project&lt;/artifactId&gt;
      &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
      &lt;packaging&gt;apk&lt;/packaging&gt;
      &lt;name&gt;Simple Android Project&lt;/name&gt;
      &lt;dependencies&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;android&lt;/groupId&gt;
              &lt;artifactId&gt;android&lt;/artifactId&gt;
              &lt;version&gt;2.1_r1&lt;/version&gt;
              &lt;scope&gt;provided&lt;/scope&gt;
          &lt;/dependency&gt;
      &lt;/dependencies&gt;
      &lt;build&gt;
          &lt;sourceDirectory&gt;src&lt;/sourceDirectory&gt;
          &lt;plugins&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;com.jayway.maven.plugins.android.generation2&lt;/groupId&gt;
                  &lt;artifactId&gt;maven-android-plugin&lt;/artifactId&gt;
                  &lt;version&gt;2.2.3-SNAPSHOT&lt;/version&gt;
                  &lt;configuration&gt;
                      &lt;sdk&gt;
                          &lt;platform&gt;2.1&lt;/platform&gt;
                      &lt;/sdk&gt;
                      &lt;deleteConflictingFiles&gt;true&lt;/deleteConflictingFiles&gt;
                     &lt;undeployBeforeDeploy&gt;true&lt;/undeployBeforeDeploy&gt;
                  &lt;/configuration&gt;
                  &lt;extensions&gt;true&lt;/extensions&gt;
              &lt;/plugin&gt;
              &lt;plugin&gt;
                  &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
                  &lt;configuration&gt;
                      &lt;source&gt;1.5&lt;/source&gt;
                      &lt;target&gt;1.5&lt;/target&gt;
                  &lt;/configuration&gt;
              &lt;/plugin&gt;
          &lt;/plugins&gt;
      &lt;/build&gt;
  &lt;/project&gt;
</pre><p>Ce <code>pom.xml</code> est tout à fait traditionnel excepté les points suivants :</p><ul><li>Il dispose d&#8217;un nouveau type de packaging &#8216;APK&#8217;</li><li>Deux plugins sont configurés dans le <code>build</code> : Maven Android et Maven Compiler</li></ul><p>Le type de packaging APK permet d&#8217;activer le cycle de vie spécifique à Android. Il fait le lien entre Maven et les outils du SDK Android, permet la gestion des ressources, la conversion du bytecode Java en code exécutable Dalvik &#8230;</p><p>La dépendance vers le JAR de la plateforme doit utiliser la version de la cible telle qu&#8217;elle a été publiée dans le dépôt Maven par l&#8217;Android SDK Deployer. Il récupère les versions à partir des valeurs <code>Platform.Version</code> et <code>Pkg.Revision</code> renseignées dans le fichier de propriétés <code>source.properties</code> qui se trouve dans le dossier de la plateforme du SDK Android.</p><p>La configuration du plugin Maven Compiler dans le build est également nécessaire, car Android utilise les fonctionnalités Java 5 (annotations, boucles simplifiées&#8230;).</p><p>Pour construire l&#8217;application et l&#8217;exécuter sur un émulateur déjà lancé, lancez la commande :</p><pre class="brush: java; title: ; notranslate">
mvn clean install android:deploy
</pre><h3><a
name="Ajoutezdestestsvotreapplicatio"></a>Ajoutez des tests à votre application Android</h3><p>Le test du code d&#8217;une application Android peut-être effectué à la manière d&#8217;un test unitaire traditionnel <em>junit</em> dans le cadre du SDK Android, mais aussi par l&#8217;intermédiaire de tests <em>d&#8217;intégration</em>. Ces derniers sont appelés &#8216;instrumentation tests&#8217;.</p><h4><a
name="Excutiondestestsunitairesdunpr"></a>Exécution des tests unitaires d&#8217;un projet Android via Maven</h4><p>Le plugin Android Maven lance l&#8217;exécution des tests unitaires à la manière du plugin Surefire. Comme le chemin par défaut des classes de tests dans Eclipse et dans l&#8217;Android Development Toolkit ne respecte pas la convention Maven, vous devez configurer spécifiquement le dossier d&#8217;accès au code de vos tests unitaires.</p><pre class="brush: xml; title: ; notranslate">
&lt;build&gt;
  &lt;testSourceDirectory&gt;test&lt;/testSourceDirectory&gt;
  ...
&lt;/build&gt;
</pre><h4><a
name="GrezvostestsdinstrumentationAn"></a>Gérez vos tests d&#8217;instrumentation Android avec Maven</h4><p>Les tests d&#8217;instrumentation sont des tests d&#8217;intégration packagés dans une application qui est lancée dans un émulateur (ou un téléphone) et qui interagit avec une autre application pour tester son comportement. Pour exécuter les ces tests d&#8217;instrumentation, vous devez disposer de deux projets distincts : l&#8217;un pour l&#8217;application, l&#8217;autre pour les tests d&#8217;instrumentation. Ces modules sont liés par l&#8217;intermédiaire d&#8217;un pom parent.</p><p>La configuration du plugin Maven Android pour l&#8217;application contenant les tests d&#8217;instrumentation est la même que pour celle de l&#8217;application principale avec une seule différence : l&#8217;ajout d&#8217;une dépendance vers l&#8217;application principale. Il est important d&#8217;ajouter le <em>type apk</em> sur cette dépendance pour permettre au plugin Maven Android de trouver le package de l&#8217;application.</p><pre class="brush: xml; title: ; notranslate">
&lt;dependency&gt;
      &lt;groupId&gt;fr.xebia.android.demo.simple&lt;/groupId&gt;
      &lt;artifactId&gt;simple-android-project&lt;/artifactId&gt;
      &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
      &lt;type&gt;apk&lt;/type&gt;
&lt;/dependency&gt;
</pre><h3><a
name="RajoutezdesAddOnvosapplication"></a>Rajoutez des <em>Add-On</em> à vos applications Android</h3><p>Pour la majorité des applications, l&#8217;artefact du SDK (android.jar) suffit, il arrive pourtant que certaines applications nécessitent des Add Ons. L&#8217;un des Add-Ons les plus connus est celui de Google Maps. Cet Add-On a été déployé dans votre dépôt Maven par l&#8217;outil Maven Android SDK Deployer. Afin de pouvoir utiliser cette API, vous avez besoin d&#8217;ajouter une dépendance à votre application :</p><pre class="brush: xml; title: ; notranslate">
&lt;dependency&gt;
  &lt;groupId&gt;com.google.android.maps&lt;/groupId&gt;
  &lt;artifactId&gt;maps&lt;/artifactId&gt;
  &lt;version&gt;7_r1&lt;/version&gt;
  &lt;scope&gt;provided&lt;/scope&gt;
&lt;/dependency&gt;
</pre><h3><a
name="DcoupezvosprojetsAndroidavecMa"></a>Découpez vos projets Android avec Maven</h3><p>Le plugin Maven Android peut être utilisé sur un projet multi-module de manière transparente, voici comment je vais découper mes projets :</p><p>Le socle contient :</p><ul><li>Une application contenant le code et les ressources Android communes à toutes mes applications Android</li></ul><p>Chaque application contient :</p><ul><li>Un projet pour le code Java réutilisé côté serveur. Cela permet de partager du code entre une application Android et une application Web.</li><li>Une application web de type WAR contenant la partie serveur de l&#8217;application. C&#8217;est cette partie qui fournit les services distants à l&#8217;application Android.</li><li>L&#8217;application Android proprement dite est un projet Maven de type APK qui possède une dépendance sur le modèle et une dépendance sur le socle. C&#8217;est son pom qui configure le plugin Maven Android. Notez le type particulier de la dépendance vers le socle : <a
href="http://code.google.com/p/maven-android-plugin/wiki/ApkSourcesDependency" title="apksources" >apksources</a>, les sources et ressources incluses dans cette dépendance sont poussées dans l&#8217;application courante avant sa construction.</li></ul><pre class="brush: xml; title: ; notranslate">
&lt;dependency&gt;
      &lt;groupId&gt;fr.xebia.android.demo.socle&lt;/groupId&gt;
      &lt;artifactId&gt;socle-sample&lt;/artifactId&gt;
      &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
      &lt;type&gt;apksources&lt;/type&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
      &lt;groupId&gt;fr.xebia.android.demo.simple&lt;/groupId&gt;
      &lt;artifactId&gt;simple-model&lt;/artifactId&gt;
      &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
&lt;/dependency&gt;
</pre><ul><li>Un dernier projet contenant les tests d&#8217;intégration qui dépend de l&#8217;application précédente.</li></ul><pre class="brush: xml; title: ; notranslate">
&lt;dependency&gt;
      &lt;groupId&gt;fr.xebia.android.demo.simple&lt;/groupId&gt;
      &lt;artifactId&gt;simple-android-project&lt;/artifactId&gt;
      &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
      &lt;type&gt;apk&lt;/type&gt;
&lt;/dependency&gt;
</pre><div
align="center"> <img
src=" http://blog.xebia.fr/wp-content/uploads/2010/03/android-multimodules.png" border="0" alt="android maven multimodules" /></div><p>Notez cependant que ce plugin Maven Android est toujours en cours de développement, j&#8217;ai rencontré de nombreux bugs. Le dernier en date, et pas des moindres : la fonctionnalité &#8216;apksources&#8217; ne fonctionnait plus. Utilisez ce genre de fonctionnalité que si vous n&#8217;avez pas peur de mettre les mains dans les sources du plugin en cas de problème. Tout cela sent encore la peinture fraîche, reste à savoir si elle va tenir.</p><p>La solution Maven ne vous a pas séduit ? Il est vrai qu&#8217;elle reste lourde et relativement compliquée, mais il existe bon nombre d&#8217;alternatives <a
href="http://www.linux-mag.com/cache/7667/1.html" title="Ant" >Ant</a>, <a
href="http://code.google.com/p/autoandroid/wiki/AndroidAnt" title="AndroidAnt" >AndroidAnt</a>, <a
href="http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.jdt.doc.user/reference/ref-properties-build-path.htm" title="Eclipse Linked Source" >Eclipse Linked Source</a>, <code>ln -s</code> &#8230;</p><div
align="center"> <a
href="http://twitter.com/ealliaume" ><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png"  alt="twitter erwan alliaume" title="twitter erwan alliaume" border="0" /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/03/23/maven-et-android-comment-utiliser-le-plugin/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/</link> <comments>http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/#comments</comments> <pubDate>Mon, 22 Mar 2010 18:57:08 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Cassandra]]></category> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Ehcache]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[Lean]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[scala]]></category> <category><![CDATA[Scalaj Collections]]></category> <category><![CDATA[Sonar]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4249</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Agilité Quand Toyota se met au Lean Le coin de la technique Ehcache 2.0 : un renouveau ? Scalaj Collections Sonar 2.0 MySQL + Memcached vs Cassandra Evènements de notre communauté en France et à l&#8217;étranger Kawa Camp Paris mardi : HTML 5, Android, [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/#QuandToyotasemetauLean">Quand Toyota se met au Lean</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/#Ehcacheunrenouveau">Ehcache 2.0 : un renouveau ?</a></li><li><a
href="http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/#ScalajCollections">Scalaj Collections</a></li><li><a
href="http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/#Sonar">Sonar 2.0</a></li><li><a
href="http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/#MySQLMemcachedvsCassandra">MySQL + Memcached vs Cassandra</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/#KawaCampParismardiHTMLAndroidN">Kawa Camp Paris mardi : HTML 5, Android, NoSQL</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="QuandToyotasemetauLean"></a>Quand Toyota se met au Lean</h4><p>Tout le monde le sait, le Lean est l&#8217;adaptation du système de production de Toyota au développement logiciel. Et pourtant, qui est en train de s&#8217;inspirer du Lean pour améliorer son développement logiciel ? &#8230; Toyota!<br
/> Dans <a
href="http://blog.crisp.se/henrikkniberg/2010/03/16/1268757660000.html" title="cet article" >cet article</a>, Henrik Kniberg (l&#8217;auteur de <a
href="http://www.infoq.com/minibooks/scrum-xp-from-the-trenches" title="Scrum and xp from the trenches" >&laquo;&nbsp;Scrum and xp from the trenches&nbsp;&raquo;</a>) nous raconte comment il a découvert avec stupeur que Toyota utilisait encore le &laquo;&nbsp;bon&nbsp;&raquo; vieux cycle en V pour le développement logiciel. Conscient des problèmes rencontrés il semblerait cependant que les équipes de développement de Toyota s&#8217;orientent vers les méthodes agiles. La boucle est ainsi bouclée!</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Ehcacheunrenouveau"></a>Ehcache 2.0 : un renouveau ?</h4><p><a
href="http://ehcache.org/" title="Ehcache" >Ehcache</a> est une solution de cache Open Source qui est longtemps restée très basique : aucun mécanisme de réplication n&#8217;était proposé. Le projet se limitait alors une table de hachage enrichie d&#8217;une logique d&#8217;éviction et d&#8217;<em>offload</em> sur disque. La réplication du cache sur plusieurs nœuds par RMI est apparue tardivement, et fut suivie d&#8217;autres technologies de réplication telles que JGroups ou JMS. Plus récemment, l&#8217;acquisition du projet par Terracotta fut assez logiquement suivie de l&#8217;introduction d&#8217;une réplication par Terracotta en version 1.7.</p><p>Ces dernières années ont donc vu un enrichissement (ou une complexification) croissant d&#8217;Ehcache. Une nouvelle version 2.0 <a
href="http://ehcache.org/" title="vient dtre annonce" >vient d&#8217;être annoncée</a> par Terracotta et les nouveautés incluses créent une nouvelle fois la rupture avec les versions précédentes&nbsp;:</p><ul><li><strong>Support de JTA</strong> : Ehcache se comporte maintenant comme une ressource transactionnelle XA. Ce support de JTA place ainsi EhCache face à JBoss Cache, maintenant renommé <a
href="http://www.jboss.org/infinispan" title="Infinispan" >Infinispan</a>, qui se démarquait jusqu&#8217;alors parmi les caches Open Source par ses capacités transactionnelles.</li><li><strong>Write-behind</strong> : Ehcache est maintenant capable d&#8217;écrire de manière asynchrone et planifiée dans la ressource dont il est la façade.</li></ul><p>Les autres nouveautés concernent diverses améliorations liées à la configuration dynamique d&#8217;Ehcache ou à l&#8217;utilisation de Terracotta.</p><p>Il s&#8217;agit donc bien d&#8217;une version majeure pour Ehcache qui propose désormais de nombreuses fonctionnalités dédiées aux architectures distribuées. Le <a
href="http://sourceforge.net/projects/ehcache/files/" title="poids de la distribution" >poids de la distribution</a> s&#8217;en ressent puisqu&#8217;il est passé de 300 Ko pour la version 1.0 a 14 Mo pour la version 2.0 : une vraie rupture&#8230;</p><h4><a
name="ScalajCollections"></a>Scalaj Collections</h4><p>Voici une petite librairie fort sympathique qui permet de convertir une collection Java vers une collection Scala et inversement <em>(vu sur le <a
href="http://code.technically.us/post/464828790/scalaj-collection" title="Coderspiel" >Coderspiel</a>)</em>.</p><p>La librairie enrichit certaines classes existantes comme <code>List</code>, <code>Map</code> et <code>Set</code> côté Scala ou <code>ArrayList</code> côté Java. Une fois l&#8217;objet créé et si besoin initialisé avec certaines données, il suffit d&#8217;appeler la méthode <code>asJava</code> ou <code>asScala</code> pour modifier le type l&#8217;objet. Il est aussi possible d&#8217;appeler la méthode <code>foreach</code> sur une liste Java. Les méthodes <code>map</code>, <code>filter</code> et <code>flatMap</code> sont en cours de développement. Quelques exemples :</p><pre class="brush: java; title: ; notranslate">
List(1, 2, 3).asJava   // returns java.util.List1
Map(1 -&gt; &quot;a&quot;, 2 -&gt; &quot;b&quot;, 3 -&gt; &quot;c&quot;).asJava   // returns java.util.Map1
val list = new java.util.ArrayList1
list.add(1)
list.add(2)
list.asScala   // returns scala.Seq[Int]
list.foreach(print)   // prints &quot;123&quot;
</pre><p>Le projet est hébergé sur <a
href="http://github.com/scalaj/scalaj-collection" title="GitHub" >GitHub</a>. Vous pouvez récupérer le jar à cette <a
href="http://www.scala-tools.org/repo-releases/org/scalaj/scalaj-collection_2.8.0.Beta1/1.0.Beta1/" title="adresse" >adresse</a> ou par maven :</p><pre class="brush: xml; title: ; notranslate">
&lt;dependency&gt;
  &lt;groupId&gt;org.scalaj&lt;/groupId&gt;
  &lt;artifactId&gt;scalaj-collection_${scala.version}&lt;/artifactId&gt;
  &lt;version&gt;1.0.Beta1&lt;/version&gt;
&lt;/dependency&gt;
</pre><h4><a
name="Sonar"></a>Sonar 2.0</h4><p>Dans cette première release de 2010, l&#8217;équipe Sonar élargit le champs d&#8217;analyse de leur outil en y ajoutant un septième axe d&#8217;analyse de qualité logiciel. Pour rappel, les six premiers axes déjà supportés par Sonar sont:</p><ul><li>La couverture de code par les tests unitaires</li><li>La distribution de la complexité (par classe et par méthode)</li><li>La recherche de bugs potentiels (avec <a
href="http://findbugs.sourceforge.net/" title="FindBugs" >FindBugs</a>)</li><li>La détection des codes dupliqués</li><li>L&#8217;insuffisance des commentaires</li><li>Le respect des normes du langage</li></ul><p>Le septième et dernier axe, propose d&#8217;évaluer la conception objet à l&#8217;aide:</p><ul><li>D&#8217;une <a
href="http://docs.codehaus.org/display/SONAR/Dependency+Structure+Matrix" title="matrice de dpendance des classes" >matrice de dépendance des classes</a>, équivalente à la DSM de IntelliJ Idea</li><li>Des métriques de <a
href="http://www.aivosto.com/project/help/pm-oo-ck.html" title="Chidamber &#038; Kemerer (DIT, NOC, RFC, CA, CE, LCOM4)" >Chidamber &#038; Kemerer (DIT, NOC, RFC, CA, CE, LCOM4)</a></li></ul><p>Ces nouveaux outils vont nous permettre, d&#8217;une part, de détecter et résoudre les cycles de dépendances, et, d&#8217;autre part, de surveiller l&#8217;étendue des responsabilités de nos classes. L&#8217;équipe Sonar reste donc très active, elle prévoit d&#8217;ailleurs une nouvelle version pour le courant du mois de mai avec notamment la détection de code mort dans la roadmap.</p><ul><li><a
href="http://sonar.codehaus.org/sonar-2-0-in-screenshots/" title="Lannonce sur le blog Sonar" >L&#8217;annonce sur le blog Sonar</a></li><li><a
href="http://sonar.codehaus.org/downloads/#2.0" title="La release note" >La release note</a></li><li><a
href="http://sonar.codehaus.org/roadmap/" title="La roadmap" >La roadmap</a></li></ul><h4><a
name="MySQLMemcachedvsCassandra"></a>MySQL + Memcached vs Cassandra</h4><p>Après <a
href="http://blog.xebia.fr/2010/03/01/revue-de-presse-xebia-149/#LactualitdesbasesdedonnesNoSQL" title="Twitter il y a un mois" >Twitter il y a un mois</a>, c&#8217;est maintenant Digg qui <a
href="http://about.digg.com/node/564" title="vient d'abandonner" >vient d&#8217;abandonner</a> sa solution de persistance basée sur MySQL et <a
href="http://memcached.org/" title="Memcached" >Memcached</a> au profit de <a
href="http://cassandra.apache.org/" title="Cassandra" >Cassandra</a>. Les raisons invoquées pour l&#8217;abandon de leur précédente solution de persistance restent les mêmes :</p><ul><li>Complexité induite par le partitionnement de MySQL</li><li>Manque de scalabilité de l&#8217;ensemble</li><li>Maintenance délicate du <em>cluster</em> MySQL</li></ul><p>Le choix de Cassandra parmi l&#8217;ensemble des base de données NoSQL disponibles était quant à lui dirigé par les qualités que l&#8217;on reconnait souvent à ce projet :</p><ul><li>Sa nature <em>column-oriented</em> apporte une persistance plus structurante qu&#8217;une simple solution clé-valeur</li><li>Son architecture <em>peer to peer</em> ne présente pas de <em>single point of failure</em> assurant donc la haute disponibilité</li><li>Le projet bénéficie d&#8217;une large communauté, gage de pérennité de l&#8217;investissement</li></ul><p>Les difficultés à gérer de très larges volumes de données dans les bases de données relationnelles sont ainsi régulièrement mises en avant. Ainsi Philip Tellis <a
href="http://tech.bluesmoon.info/2009/09/scaling-writes-in-mysql.html" title="publiait" >publiait</a> il y a quelques mois son retour d&#8217;expérience sur un projet nécessitant la persistance de quelques 40 millions d&#8217;enregistrements par jour dans une base de données MySQL partitionnée : on se rend rapidement compte des nombreux efforts nécessaires à la mise en œuvre d&#8217;une telle architecture en comparaison à la solution clé en main proposée par Cassandra.</p><p>Face à cette opposition, il est intéressant de se souvenir que Facebook, le créateur de Cassandra, est également <a
href="http://developers.facebook.com/opensource.php" title="le plus gros utilisateur" >le plus gros utilisateur</a> de Memcached au monde. Il y est utilisé conjointement à MySQL montrant ainsi que l&#8217;un des contributeurs majeurs du mouvement NoSQL a su tirer le meilleur de ces deux mondes.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="KawaCampParismardiHTMLAndroidN"></a>Kawa Camp Paris mardi : HTML 5, Android, NoSQL</h4><p>Le <a
href="http://barcamp.org/KawaCampParis1" title="Kawa Camp Paris 1" >Kawa Camp Paris 1</a> se déroulera demain mardi 23 Mars à partir de 19h00 au <a
href="http://goo.gl/HiZn	" title="Quigleys Point" >Quigley&#8217;s Point</a>. Les thèmes qui suscitent le plus d&#8217;intérêts sont cette fois HTML 5, Android et NoSQL. Déjà 32 participants confirmés et 11 autres qui tenteront de venir.</p><p>Les Barcamp Java sont un très bon moment pour discuter de technique comme de carrière et d&#8217;entretenir son réseau.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/03/22/revue-de-presse-xebia-152/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/</link> <comments>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#comments</comments> <pubDate>Mon, 16 Nov 2009 17:47:49 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[Google Wave]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[SOA]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3140</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Innovation permanente chez Google Java SE 5 en fin de vie, JDK 7 en approche SOA 10 mythes au sujet des SOA Evènements de notre communauté en France et à l&#8217;étranger Soirée Google au LyonJUG Actualité éditeurs / SSII Innovation [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#InnovationpermanentechezGoogle">Innovation permanente chez Google</a></li><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#JavaSEenfindevieJDKenapproche">Java SE 5 en fin de vie, JDK 7 en approche</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#mythesausujetdesSOA">10 mythes au sujet des SOA</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#SoireGoogleauLyonJUG">Soirée Google au LyonJUG</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="InnovationpermanentechezGoogle"></a>Innovation permanente chez Google</h4><p>Google est encore une fois au cœur de l&#8217;actualité cette semaine avec la mise à disposition d&#8217;un nouveau langage de programmation et d&#8217;un protocole destiné à remplacer HTTP.</p><p><a
href="http://golang.org/" title="Le langage Go" >Le langage Go</a> est à la croisée de C, Java et Pascal et est annoncé comme ayant des performances proches du C. Go se distingue par le fait que son compilateur produise directement du code natif, et qu&#8217;il ne requiert donc pas de machine virtuelle. Il apporte toutefois un ramasse-miette et un ensemble d&#8217;abstractions permettant de simplifier la programmation parallèle.</p><p>Très rapidement, plusieurs opinions et résultats d&#8217;expérimentations sont apparus. Ainsi, <a
href="http://timyang.net/programming/c-erlang-java-performance/" title="Tim Yang montre les performances" >Tim Yang montre les performances</a> obtenues par une application serveur développée en Java (en utilisant Mina), C (avec Nginx) et Go. Les résultats qu&#8217;il obtient montre que Go est en retrait par rapport aux deux autres solutions. Ces résultats doivent toutefois être relativisés par la maturité acquise par le système d&#8217;entrée / sortie de la JVM, le design très performant offert par Mina, la réputation de performance de Nginx et enfin, bien sûr, par le stade embryonnaire de Go.</p><p>Google a également diffusé les spécifications de <a
href="http://dev.chromium.org/spdy/spdy-protocol" title="SPDY" >SPDY</a> (prononcer Speedy), un protocole visant à remplacer HTTP. On le sait, HTTP n&#8217;est pas adapté au Web moderne. En particulier il n&#8217;est pas optimisé pour obtenir une latence minimale. SPDY ne redéfinit pas tout, il se base sur HTTP et y ajoute un ensemble de possibilités supplémentaires telles que la compression d&#8217;en-têtes, le multiplexage de flux ou encore la priorisation de requêtes.</p><p>Des tests sur le transport du contenu des sites Web les plus populaires, permettent à Google d&#8217;annoncer un gain moyen de 55%.</p><p>L&#8217;entreprise américaine continue donc d&#8217;impressionner par son innovation permanente, n&#8217;hésitant pas à remettre en cause régulièrement des technologies considérées comme incontournables.</p><h4><a
name="JavaSEenfindevieJDKenapproche"></a>Java SE 5 en fin de vie, JDK 7 en approche</h4><p>Sur la <a
href="http://java.sun.com/javase/downloads/index_jdk5.jsp" title="page ddie  J2SE 50" >page dédiée à J2SE 5.0</a>, Sun notifie depuis début novembre les utilisateurs de l&#8217;arrivée en fin de vie <em>(End of Service Life)</em> de cette version de Java.</p><p>Arrivé <a
href="http://java.sun.com/j2se/codenames.html" title="il y a 5 ans" >il y a 5 ans</a>, Java 5 avait constitué la mise à jour la plus importante de la plate-forme et de son langage depuis sa création. Son adoption en entreprise fut longue, mais s&#8217;est concrétisée au fil du temps. Ainsi aujourd&#8217;hui, on ne compte plus qu&#8217;une minorité de projets fonctionnant encore exclusivement avec la version 1.4 ou inférieure de Java.</p><p>Il en est tout autrement pour Java 6.0. En effet, contrairement à la version 5.0 dont l&#8217;adoption était indispensable pour profiter des technologies d&#8217;entreprise les plus récentes, les principales motivations pour passer à la version 6.0 concernent la JVM elle-même et les améliorations qu&#8217;elle a connue.</p><p>L&#8217;arrivée en EOSL pourrait accélérer les choses dans certaines entreprises, tandis que d&#8217;autres préfèreront se tourner vers l&#8217;offre <a
href="http://www.sun.com/software/javaforbusiness/" title="Java for Business" >Java for Business</a> de Sun qui permet de continuer de bénéficier du support de l&#8217;éditeur.</p><p>Une autre possibilité pourrait se trouver dans l&#8217;arrivée de JDK 7. En effet, la <a
href="http://openjdk.java.net/projects/jdk7/milestones/" title="roadmap" >roadmap</a> du projet promet un début de phase <em>Release Candidate</em> débutant à la fin du premier trimestre 2010 pour une durée d&#8217;un à deux mois, ce qui permettrait donc l&#8217;arrivée d&#8217;une version finale dans 6 mois. Si la confiance dans les dates de finalisation annoncées de JDK 7 s&#8217;est évaporée au fil des reports successifs, la situation semble maintenant se stabiliser : <a
href="http://blogs.sun.com/mr/entry/jdk7_m5" title="Mark Reinhold vient dannoncer" >Mark Reinhold vient d&#8217;annoncer</a> la disponibilité de la M5 de JDK 7, en accord avec le calendrier prévisionnel de la <em>roadmap</em>. Quatre des fameuses évolutions du langage apportées par le projet Coin y sont implémentées et peuvent donc être d&#8217;ores et déjà testées.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="mythesausujetdesSOA"></a>10 mythes au sujet des SOA</h4><p><a
href="http://www.ebizq.net/webinars/11585.html" title="Yefim Natis de Gartner a expos durant lvnement SOA in Action dix mythes communs" >Yefim Natis, de Gartner, a exposé durant l&#8217;évènement <em>SOA in Action</em>, dix mythes communs</a> <em>(et la réponse qu&#8217;il faut leur apporter)</em> sur la mise en place d&#8217;une SOA.<br
/> Là où l&#8217;article porte à sourire, c&#8217;est que, pour une fois, la faute est partagée : cinq de ces mythes sont propagés par les fanatiques de la SOA, et sont mis en regard de cinq autres portés par les allergiques.</p><p>Pour les fanatiques, nous avons :</p><ul><li>Les services sont portés par l&#8217;IT et propagés vers les acteurs fonctionnels.<br
/> Pour Yefim Natis, une SOA est un moyen pour l&#8217;IT de mieux comprendre et appréhender les problématiques métier.</li><li>Les plate formes orientées services reposent sur des briques pré-fabriquées.<br
/> Les SOA ne reposent pas uniquement sur des applications &#8216;services&#8217;, mais aussi sur des batchs et des applications héritées.</li><li>Partager et réutiliser sont les principaux apports d&#8217;une SOA.<br
/> C&#8217;est en effet un des bénéfices attendus, mais c&#8217;est loin d&#8217;être le seul. On peut citer : meilleure exploitation, meilleure montée en charge &#8230;</li><li>Mettre en place une SOA permet de s&#8217;abstenir de réaliser une phase d&#8217;intégration.<br
/> Même si la SOA permet d&#8217;introduire une stabilité dans les interactions entre services, elle ne dispense pas de réaliser de vrais tests d&#8217;intégration, bien au contraire.</li><li>Une SOA réduit les coûts du SI.<br
/> Sur le long terme, peut être &#8230; Mais dans un premier temps, une SOA peut s&#8217;avérer couteuse : nouvelle façon de penser, nouveaux outils, formations à prévoir&#8230;</li></ul><p>Pour les allergiques, la liste est la suivante :</p><ul><li>Une SOA introduit une grande complexité et de nouveaux problèmes.<br
/> La plupart des problèmes liés à la mise en place d&#8217;une SOA sont des problèmes existants partout ailleurs dans le monde de l&#8217;informatique distribuée. La mise en œuvre d&#8217;une SOA ne fait souvent que mettre en exergue des problèmes existants.</li><li>SOA n&#8217;est pas nouveau, c&#8217;est juste un effet de mode.<br
/> Il faut voir au delà de l&#8217;aspect technique : certes SOA repose sur les principes de l&#8217;informatique distribué, mais c&#8217;est l&#8217;ensemble de la démarche qui est nouvelle et qui a au moins l&#8217;avantage de crystaliser certaines bonnes pratiques.</li><li>Une SOA est vouée à l&#8217;échec, parce que les Web Services sont un standard trop instable.<br
/> SOA et SOAP sont deux choses complètement différentes. Les Web Services sont &#8216;juste&#8217; un moyen d&#8217;exposer des services.</li><li>Il est difficile de vendre une SOA, car les acteurs fonctionnels n&#8217;en voient pas les bénéfices.<br
/> Certains bénéfices sont apparents de manières quasi instantanée <em>(on pense aux indicateurs BAM)</em>, et les acteurs fonctionnels gagnent rapidement une nouvelle compréhension de leur environnement IT.</li><li>SOA est déjà dépassé, il faut passer à la suite.<br
/> Le challenge d&#8217;une SOA basique est en effet dépassé. Mais il reste de nombreux enjeux à adresser, notamment dans les architectures les plus complexes.</li></ul><p><a
href="http://www.infoq.com/news/2009/11/SOA10" title="via InfoQ" >via InfoQ</a></p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SoireGoogleauLyonJUG"></a>Soirée Google au LyonJUG</h4><p>Lundi 23 Novembre, le <a
href="http://www.lyonjug.org/bin/view/Main/" title="LyonJUG" >LyonJUG</a> organise une soirée dédiée aux technologies Google. L&#8217;occasion de découvrir, démonstration à l&#8217;appui, Google Web Toolkit, Google App Engine, Android et le dernier né Google Wave. L&#8217;objectif est aussi de présenter l&#8217;architecture globale de ces produits pour mieux en saisir le fonctionnement et le but.<br
/> Pour faciliter l&#8217;organisation de la soirée dans les locaux d&#8217;EPITECH, vous devez vous inscrire <a
href="http://www.jugevents.org/jugevents/event/show.html?id=21154" title="ici" >ici</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/</link> <comments>http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#comments</comments> <pubDate>Mon, 05 Oct 2009 16:06:26 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[j2me]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JPA]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[MIDP]]></category> <category><![CDATA[MSA]]></category> <category><![CDATA[NDK]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Web Beans]]></category> <category><![CDATA[Weld]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2972</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Google essuie les plâtres et met à jour l&#8217;Android NDK MIDP 3 et MSA 2 pour sauver J2ME ? Agilité Départs de la Scrum Alliance : bruits de couloirs RIA Sécurité : 13 choses que les agresseurs d&#8217;applications web ne [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#Googleessuielespltresetmetjour">Google essuie les plâtres et met à jour l&#8217;Android NDK</a></li><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#MIDPetMSApoursauverJME">MIDP 3 et MSA 2 pour sauver J2ME ?</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#DpartsdelaScrumAlliancebruitsd">Départs de la Scrum Alliance : bruits de couloirs</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#Scuritchosesquelesagresseursda">Sécurité : 13 choses que les agresseurs d&#8217;applications web ne vous diront pas</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#Lesroadmapsdesimplmentationsde">Les roadmaps des implémentations de JPA 2.0</a></li><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#WebBeansestmortLonguevieaWeld">Web Beans est mort ! Longue vie a Weld !</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="Googleessuielespltresetmetjour"></a>Google essuie les plâtres et met à jour l&#8217;Android NDK</h4><p>Pour rappel, le NDK est un environnement de développement complémentaire au SDK qui permet d&#8217;utiliser des langages autres que Java pour développer sur Android. Ce NDK est principalement dédié au développement C et C++. Parmi les nouveautés de la version 1.6, vous trouverez :</p><ul><li>Les librairies OpenGL ES 1.1 qui rapprochent encore un peu Android de l&#8217;IphoneOS.</li><li>Ciblage de version Android pour garantir le fonctionnement de votre application.</li><li>Possibilité de mélanger les sources Java et le code natif dans un même projet.</li></ul><p>Mais la semaine passée fût aussi l&#8217;occasion d&#8217;une joute entre Google et certains développeurs Android. Sujet de la discorde, le <a
href="http://www.cyanogenmod.com/" title="CyanogenMod" >CyanogenMod</a> une version libre, modifiée, d&#8217;Android. Google n&#8217;a pas apprécié le fait que son développeur ait la riche idée de distribuer avec son mod, les applications propriétaires qui lui sont chères. Citons par exemple : GMail, YouTube, Maps et Market. Nul besoin de dire que le système perd de son intérêt quand il est privé de ces outils estampillés Google&#8230;</p><p>Le spécialiste de la recherche a donc demandé l&#8217;interruption de toute distribution de ce mod, en attendant que le développeur trouve un moyen de livrer de l&#8217;Android sans aucune des G-Apps. C&#8217;est un baptême du feu pour ce système que Google a voulu ouvert. D&#8217;aucun disent que Google avait la possibilité de créer une alternative libre au jardin d&#8217;Eden d&#8217;Apple entouré de hauts remparts, à la place ce sera un autre jardin avec des murs un peu plus bas.</p><h4><a
name="MIDPetMSApoursauverJME"></a>MIDP 3 et MSA 2 pour sauver J2ME ?</h4><p><a
href="http://java.sun.com/products/midp/" title="Mobile Information Device Profile" >Mobile Information Device Profile</a> <em>(MIDP)</em>, associé à <a
href="http://java.sun.com/products/cldc/" title="Connected Limited Device Configuration" >Connected Limited Device Configuration</a> <em>(CLDC)</em> constitue l&#8217;API de base de J2ME, c&#8217;est cette architecture qui constitue le parc de 2 milliards de <em>devices</em> revendiqués par SUN.</p><p>La <a
href="http://jcp.org/en/jsr/detail?id=248" title="JSR-248 (Mobile Service Architecture)" >JSR-248 (Mobile Service Architecture)</a>, quant à elle, définit un ensemble d&#8217;APIs additionnelles pour les environnements MIDP J2ME apportant chacune un service particulier permettant souvent d&#8217;accéder à des fonctionnalités matérielles sous-jacentes (Bluetooth, GPS, Camera, &#8230;).</p><p>Ces deux piliers de J2ME sont en train d&#8217;évoluer avec la finalisation de <a
href="http://jcp.org/en/jsr/detail?id=271" title="MIDP 3" >MIDP 3</a> et <a
href="http://jcp.org/en/jsr/detail?id=249" title="MSA 2" >MSA 2</a>. Tandis que le premier apportera un rafraichissement de l&#8217;API de base de J2ME, le second poussera plus loin les possibilités d&#8217;intégration des applications mobiles J2ME.</p><p>Alors que les valeurs montantes du moment dans le monde du développement mobile sont clairement les plates-formes Android et iPhone, le rafraîchissement des APIs J2ME vieillissantes est le bienvenue et viendra épauler JavaFX Mobile dans son hypothétique ascension. On peut toutefois douter que cela suffira à inverser la tendance même si J2ME, fort de son parc colossal, n&#8217;est clairement pas menacé à court terme.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="DpartsdelaScrumAlliancebruitsd"></a>Départs de la Scrum Alliance : bruits de couloirs</h4><p>Vous le savez surement, la fin de l&#8217;été a marqué un tournant au sein de la Scrum Alliance.<br
/> Le 15 Septembre, dans un <a
href="http://www.scrumalliance.org/news_items/75" title="communiqu laconique" >communiqué laconique</a> <em>(et très américain &#8211; nous remercions &#8230; blablabla pour son excellent travail &#8230; blabla)</em>, il nous était annoncé le départ de deux éminents membres de la Scrum Alliance, Ken Schwaber <em>(son CEO)</em> et Jim Cundiff <em>(son Managing Director)</em>.<br
/> Après une enquête acharnée et au détour de quelques indiscrétions de sources <em>(que nous ne citerons pas)</em>, il s&#8217;avère que Ken a eu un grave accident de vélo et que Jim a été démissionné compte tenu de ses manquements dans la refonte du processus de certification dont il était en charge.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="Scuritchosesquelesagresseursda"></a>Sécurité : 13 choses que les agresseurs d&#8217;applications web ne vous diront pas</h4><p>Le Denim Group regroupe dans <a
href="http://denimgroup.typepad.com/denim_group/2009/09/13-things-a-web-application-attacker-wont-tell-you.html" title="13 Things a Web Applications Attacker Wont Tell You" >13 Things a Web Applications Attacker Won&#8217;t Tell You</a> les principales failles de sécurité de nos applications web :</p><ol><li>Transformer une requête GET en POST ne cachera pas les paramètres même s&#8217;ils n&#8217;apparaissent plus dans la barre d&#8217;adresse du navigateur <em>(vérifiez avec <a
href="http://www.charlesproxy.com/" title="Charles Proxy" >Charles Proxy</a> ou <a
href="http://www.fiddler2.com/fiddler2/" title="Fiddler" >Fiddler</a> si vous en doutez)</em>.</li><li>Utiliser un champ de formulaire <code>hidden</code> ne permet ni de cacher une information ni d&#8217;empêcher sa modification.</li><li>Idem pour les cookies <em>(voir #1)</em>.</li><li>Contrôler les données coté client avec du javascript ne m&#8217;empêchera pas de modifier leur valeur.</li><li>J&#8217;aime vous entendre dire &laquo;&nbsp;Cela n&#8217;arrivera jamais en production&nbsp;&raquo;.</li><li>Et j&#8217;adore quand vous dites &laquo;&nbsp;Un pirate ne ferait jamais ça&nbsp;&raquo;.</li><li>Je déteste les validations strictes cote serveur.</li><li>Cette page d&#8217;erreur avec le message détaillé me facilite tellement la vie.</li><li>La plupart des bannières &laquo;&nbsp;Sécurité Garantie !&nbsp;&raquo; ne me servent qu&#8217;a voir que vous n&#8217;avez pas compris les bases de la sécurité.</li><li>Ce scanneur d&#8217;application web que vous avez lancé, il n&#8217;a rien trouvé. Il n&#8217;a même pas effleuré les failles de votre application.</li><li>Ce scanneur réseau que vous avez lancé, il n&#8217;a même pas commencé a tester la sécurité de votre application.</li><li>Je connais AJAX (et toutes les nouvelles technologies a la mode) mieux que vous et mieux que vous ne pouvez imaginer.</li><li>Le plus astucieux vous vous croyiez, le mieux je me sens.</li></ol><p>Moralité, soyons humble et rigoureux, nous ne pourrons pas dire que nous ne savions pas, ces conseils sont répétés par la plupart des tutoriaux de frameworks web <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Lesroadmapsdesimplmentationsde"></a>Les roadmaps des implémentations de JPA 2.0</h4><p>Alors que la <a
href="http://jcp.org/en/jsr/detail?id=317" title="JSR-317 (Java Persistence API 2.0)" >JSR-317 (Java Persistence API 2.0)</a> vient de diffuser une <em>Proposed Final Draft 2</em> et que sa finalisation approche, nous souhaitions faire un tour d&#8217;horizon des principales implémentations en préparation. Comme c&#8217;est souvent le cas avec les JSRs, les développeurs n&#8217;attendent pas la finalisation des spécifications pour commencer à les implémenter. Ainsi, on se souvient que JPA 1.0, intégré à la <a
href="http://jcp.org/en/jsr/summary?id=220" title="JSR-220 (Enterprise JavaBeans 3.0)" >JSR-220 (Enterprise JavaBeans 3.0)</a> avait fait l&#8217;objet d&#8217;implémentations alpha chez JBoss dès la diffusion des <em>early drafts</em>, ce qui avait permis la stabilisation du conteneur peu après la finalisation de la JSR.</p><ul><li><strong>Hibernate</strong> : l&#8217;équipe de développement Hibernate <a
href="http://relation.to/12153.lace" title="a annonc" >a annoncé</a> fin aout la disponibilité d&#8217;une version 3.5 beta 1 qui implémentait la majorité des nouveautés de JPA 2.0. Aucune indication n&#8217;était alors donnée sur la date de finalisation, mais le bon avancement permet de supposer qu&#8217;elle arrivera rapidement. A noter toutefois que certaines optimisations importantes telles que la compilation des requêtes <em>criteria</em> n&#8217;arriveront que dans une version ultérieure.</li><li><strong>EclipseLink</strong> : la fondation Eclipse <a
href="http://www.eclipse.org/org/press-release/20080317_Eclipselink.php" title="avait annoncé" >avait annoncé</a> fièrement en début d&#8217;année 2008 qu&#8217;EclipseLink serait l&#8217;implémentation JPA 2.0 de référence. Une <a
href="http://wiki.eclipse.org/EclipseLink/RoadMap" title="roadmap" >roadmap</a> mise à jour en avril dernier fait état d&#8217;une version 2.0 d&#8217;EclipseLink implémentant JPA 2.0 pour l&#8217;automne 2009.</li><li><strong>Apache OpenJPA</strong> : le projet OpenJPA maintient <a
href="http://openjpa.apache.org/jpa-20-roadmap.html" title="une roadmap" >une roadmap</a> très rigoureuse tablant sur un démarrage de phase <em>release candidate</em> pour la fin de l&#8217;année. Il s&#8217;agira de la version 2.0 d&#8217;OpenJPA, elle est actuellement développée sur le <em>trunk</em> du projet.</li></ul><p>La première version de la spécification JPA a été un succès puisque de nombreux développeurs ont reconnu sa légitimité et l&#8217;ont adopté dans leurs projets plutôt que de se reposer sur l&#8217;API propre à leur <em>framework</em> de persistance. Toutefois, pour certaines fonctionnalités telles que les requêtes <em>criteria</em> ou des options de <em>mapping</em> évoluées, il était jusqu&#8217;alors nécessaire de contourner JPA. Dès lors, on imagine aisément que JPA 2.0, comblant les manques de son ainée, bénéficiera d&#8217;une large adoption. La disponibilité des moteurs JPA 2.0 qui seront utilisés par JBoss AS, Glassfish et WebSphere autour de la fin de l&#8217;année devrait par ailleurs accélérer l&#8217;omniprésence de cette nouvelle API.</p><h4><a
name="WebBeansestmortLonguevieaWeld"></a>Web Beans est mort ! Longue vie a Weld !</h4><p>Apres les bruits de couloir de la Scrum Alliance, nous continuons la rubrique people avec une fois encore Web Beans. Après le changement de nom de la <a
href="http://jcp.org/en/jsr/detail?id=299" title="JSR 299" >JSR 299</a> en Java Contexts and Dependency Injection, voici que la Reference Implementation se <a
href="http://in.relation.to/Bloggers/TheJSR299ReferenceImplementationGetsANewName" title="rebaptise Weld" >rebaptise Weld</a>.<br
/> Pendant ce temps, la <a
href="http://www.jcp.org/en/jsr/summary?id=330" title="JSR 330: Dependency Injection for Java" >JSR 330: Dependency Injection for Java</a> continue son chemin avec son implémentation partielle dans <a
href="http://blog.springsource.com/2009/09/29/spring-framework-3-0-rc1-released/" title="Spring Framework 3.0 RC1" >Spring Framework 3.0 RC1</a> et son intégration dans <a
href="http://code.google.com/p/google-guice/issues/detail?id=424" title="Google Guice" >Google Guice</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Jazoon &#8211; Jour 2 &#8211; JavaFX</title><link>http://blog.xebia.fr/2009/06/25/jazoon-jour-2-javafx/</link> <comments>http://blog.xebia.fr/2009/06/25/jazoon-jour-2-javafx/#comments</comments> <pubDate>Thu, 25 Jun 2009 08:26:00 +0000</pubDate> <dc:creator>Pablo Lopez</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[jazoon]]></category> <category><![CDATA[mobile]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2377</guid> <description><![CDATA[Hier, on a encore beaucoup parlé de JavaFX. Danny Coward, dans la conférence d&#8217;ouverture de la journée, annonçait que Sun comptait rattraper le temps perdu, en continuant sa politique de releases rapides, et que JavaFX connaîtrait une nouvelle version avant la fin de l&#8217;année (même si les fonctionnalités de cette version restent encore mystérieuses). Il [...]]]></description> <content:encoded><![CDATA[<p>Hier, on a encore beaucoup parlé de JavaFX. Danny Coward, dans la conférence d&#8217;ouverture de la journée, annonçait que Sun comptait rattraper le temps perdu, en continuant sa politique de <em>releases</em> rapides, et que JavaFX connaîtrait une nouvelle version avant la fin de l&#8217;année (même si les fonctionnalités de cette version restent encore mystérieuses). Il faisait aussi son top 5 des fonctionnalités offertes par la version 1.2 :</p><ul><li>Plus de plate-formes : un prototype de téléviseurs montré à JavaOne, le support (partiel) de Linux et Solaris, et la promesse de voir les téléphones de LG, HTC et Sony arriver bientôt sur le marché public</li><li>Plus de composant UI, tous skinnable à l&#8217;aide de CSS</li><li>L&#8217;ajout de <em>layouts</em></li><li>De meilleures performances</li><li>Un meilleur accès et un meilleur usage des données</li></ul><p>Etrange top 5 à vrai dire, puisque quelques uns de ses points ne sont que partiellement implémentés.</p><p>Mais Sun met en avant son produit, et les démonstrations effectuées par D. Coward restent relativement impressionnantes (table de photos FlickR, arbre fractal en mouvement, et même PacMan !)</p><p>Plusieurs conférences permettaient de prolonger l&#8217;expérience avec le RIA de Sun. Ainsi,  nous avons pu suivre une démonstration mêlant deux des stars de Jazoon, à savoir Glassfish et JavaFX. En effet, le <em>back-end</em> d&#8217;administration de Glassfish V3 est exposé en REST et pilotable par les quatre verbes. Il a alors été facile pour Ludovic Champenois de récupérer la configuration de son serveur local pour l&#8217;injecter dans les samples de JavaFX 1.2. Ce qui donne un &laquo;&nbsp;livre&nbsp;&raquo; qui dévoile au fil de ses pages des domaines, des serveurs et des datasources&#8230; L&#8217;expérience s&#8217;arrête là, et il n&#8217;est pas (encore) question de créer une console Glassfish en JavaFX.</p><p>Autre sujet abordé, celui du <em>casual gaming</em>. C&#8217;est ce segment de marché qui pourrait permettre aux mobiles FX, ainsi qu&#8217;au Java Store, de décoller. La présentation très succincte a tout de même donné un aperçu des facilités apportées par JavaFX pour le développement des jeux. Etant donné la fragmentation du marché mobile, cela donne un avantage non négligeable à JavaFX. Cette présentation nous a donné envie d&#8217;en voir plus, <a
href="http://silveiraneto.net/">à travers ce blog</a>.</p><p>Dernière conférence, deux développeurs discutent à la machine à café de qui est le meilleur entre Android et JavaFX Mobile. Ils se lancent un défi de développer la même application sur 2 terminaux mobiles. Cela vous rappelle <a
href="http://blog.xebia.fr/2009/06/17/xebia-mobile-application-contest-java-fx-android-iphone/">quelque chose</a> ? Et pourtant, il s&#8217;agit d&#8217;une conférence donnée par deux ingénieur de Canoo (les grands esprits se rencontrent dit on&#8230;).<br
/> L&#8217;application JavaFX a profité des fonctionnalités d&#8217;échange avec Photoshop pour avoir un design très léché. L&#8217;application Android a tiré le meilleur parti de <em>l&#8217;application framework</em> et des composants gaphiques &laquo;&nbsp;<em>out-of-the-box</em>&nbsp;&raquo; (qui n&#8217;ont pas d&#8217;équivalent chez Sun). Au final, on obtient un match nul en terme de résultat (pas vraiment en terme de courbe d&#8217;apprentissage, ni de temps de développement, clairement plus courts sur la plate-forme de Google).<br
/> Pour le dernier slide de la conférence, l&#8217;assistance a été mise à contribution. Elle devait voter pour l&#8217;un des choix suivant :</p><ul><li>1. JavaFX Mobile va signer l&#8217;arrêt de mort d&#8217;Android</li><li>2. Android va signer l&#8217;arrêt  de mort de JavaFX Mobile</li><li>3. Les deux technologies vont cohabiter pacifiquement</li><li>4. Sun (ou une autre firme) va proposer un portage JavaFX sur Android</li><li>5. Sun va poursuivre Google en justice pour non-respect du contrat de licence</li></ul><p>La seconde proposition a remporté très largement l&#8217;adhésion de la salle, ce qui prouve que malgré le déploiement médiatique, et les nettes améliorations proposées de version en version, Java FX Mobile peine encore à convaincre.<br
/> Pour conclure, on pourra réfléchir à la remarque taquine d&#8217;un des membres de l&#8217;assistance : &laquo;&nbsp;il manque un numéro 6 dans les votes : Apple a déjà gagné la guerre&nbsp;&raquo;&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/06/25/jazoon-jour-2-javafx/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Xebia Mobile Application Contest : Java FX &#8211; Android &#8211; iPhone</title><link>http://blog.xebia.fr/2009/06/17/xebia-mobile-application-contest-java-fx-android-iphone/</link> <comments>http://blog.xebia.fr/2009/06/17/xebia-mobile-application-contest-java-fx-android-iphone/#comments</comments> <pubDate>Wed, 17 Jun 2009 12:04:38 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Mobilité]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[avantages]]></category> <category><![CDATA[comparaison]]></category> <category><![CDATA[contest]]></category> <category><![CDATA[inconvénients]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[retours d'expérience]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2226</guid> <description><![CDATA[Fonctionnement du contest Dans le cadre de nos XKE (formations internes), beaucoup d&#8217;entre nous ont émis le souhait d&#8217;étendre leur champ de compétence au développement d&#8217;application sur téléphone mobile. Nous avions plusieurs technologies dans nos bagages : l&#8217;installé iPhone (à première vue pas vraiment compatible avec des développeurs Java), l&#8217;étoile montante Android, et l&#8217;outsider JavaFx. [...]]]></description> <content:encoded><![CDATA[<h3><a
name="Fonctionnementducontest"></a>Fonctionnement du contest</h3><p>Dans le cadre de nos XKE (formations internes), beaucoup d&#8217;entre nous ont émis le souhait d&#8217;étendre leur champ de compétence au développement d&#8217;application sur téléphone mobile. Nous avions plusieurs technologies dans nos bagages : l&#8217;installé iPhone (à première vue pas vraiment compatible avec des développeurs Java), l&#8217;étoile montante Android, et l&#8217;outsider JavaFx.<br
/> Mais pour voir au-delà des promesses marketing, il nous fallait nous mesurer à ces technologies dans le cadre de leur utilisation réelle, sur un projet de la &#8216;vraie vie&#8217;. Ainsi est née l&#8217;idée de ce contest : 3 technologies, 3 développeurs Java (<a
href="http://blog.xebia.fr/author/afathallah/" title="Amin Fathallah" >Amin Fathallah</a> sur iPhone, <a
href="http://blog.xebia.fr/author/ealliaume" title="Erwan Alliaume" >Erwan Alliaume</a> sur Android, <a
href="http://blog.xebia.fr/author/plopez/" title="Pablo Lopez" >Pablo Lopez</a> sur JavaFx), et un mois (sur notre temps libre) pour traiter d&#8217;un sujet choisi par nos collègues : afficher sur le téléphone mobile l&#8217;ensemble des photos Flickr à proximité de l&#8217;utilisateur géolocalisées sur une carte. Chaque technologie a donné lieu à une démo en live et une analyse du ressenti lors du XKE suivant.</p><h3><a
name="Rsultatsetcommentaires"></a>Résultats et commentaires</h3><p>Commençons par un survol des démos : JavaFx très poussif, sur émulateur. Pas un franc succès. Android sur un G1 flambant neuf, très convaincant, notamment par les divers ajouts hors cahier des charges. Large vainqueur à l&#8217;applaudimètre, l&#8217;iPhone, avec une UI très soignée et des effets graphiques à la hauteur de la réputation du célèbre terminal.</p><p>Dans le même ordre, voici l&#8217;analyse de chacun des développeurs.</p><h4><a
name="JavaFXMobile"></a>Java FX Mobile (SDK 1.1)</h4><p>Mes premières heures de développement de l&#8217;application m&#8217;ont confirmé mes a priori : cela n&#8217;allait pas être facile. Il n&#8217;existe pas à ma connaissance de composant JavaFx permettant de simplement se géolocaliser sur une carte, qui plus est si la source cartographique est gratuite (type Google). On croise quelques API J2ME offrant ce service, mais rien de bien convaincant en open source.<br
/> Direction donc le capot et c&#8217;est parti pour une séance de &#8216;mains dans le cambouis&#8217; : en utilisant l&#8217;API statique de Google et quelques astuces J2ME pour récupérer les coordonnées GPS, on peut s&#8217;en sortir.<br
/> Un petit tour ensuite sur les <a
href="http://javafx.com/docs/tutorials/mediabrowser/" title="tutoriels officiels" >tutoriels officiels</a> qui expliquent clairement comment récupérer des images flickR et les binder sur des composants JavaFx.<br
/> Et là commencent les ennuis réels, à savoir la gestion de l&#8217;affichage. J&#8217;ai eu la désagréable impression de revenir aux tous premiers temps de Swing : pas de layout (j&#8217;ai volontairement (faute de temps) laissé de côté les quelques frameworks open source proposant quelques composants graphiques de haut niveau) et donc tous les éléments doivent être &#8216;positionnés à la main&#8217; (entraînant toutes les éventuelles problématiques de resize&#8230;). Un simple exemple pour illustrer mon propos : pour encadrer une miniature flickR, il faut récupérer les dimensions de la miniature et dessiner programmatiquement &#8216;sous&#8217; celle-ci un rectangle de quelques pixels plus grand&#8230; Pas idéal.</p><p>Ajoutez à cela des plugins pour NetBeans et Eclipse défaillants (pas d&#8217;auto-complétion, mauvaise gestion des imports, marquage d&#8217;erreurs inexistantes, et pas de composition graphique&#8230;)</p><p>Peut être est ce la faute à une fonction de refactoring inexistante, mais mon code est rapidement devenu fouilli, et j&#8217;avais parfois du mal à m&#8217;y retrouver entre déclarations, binds et implémentations des fonctions.</p><p>Malgré tout, l&#8217;objectif est en partie atteint : l&#8217;application géolocalise l&#8217;utilisateur (en passant par la couche J2ME &#8216;pure&#8217;), affiche la carte et les miniatures, et permet de les zoomer / dézoomer, même si tout cela reste très artisanal.</p><p>Enfin, et à mon grand désespoir, contrairement à ce qui était sous-entendu dans nombre d&#8217;interviews des dirigeants de Sun à la sortie du Sdk 1.1, les terminaux mobiles du marché ne sont pas prêts à accueillir JavaFx. Il n&#8217;existe à ce jour aucun moyen de déployer des applications sur les téléphones du marché. Pour cela, il faudra attendre les terminaux &#8216;JavaFx ready&#8217; que l&#8217;on nous promet pour JavaOne.<br
/> Faute de mieux, j&#8217;ai dû réaliser ma démo sur l&#8217;émulateur (qui soit dit en passant est bien réalisé et très agréable à utiliser), avec toutes les interrogations que cela comporte (pas de limitation mémoire par exemple&#8230;)</p><p>Pour conclure, on entrevoit nettement les possibilités offertes par le langage de Sun, mais de nombreux obstacles (pitié, un environnement de développement digne de ce nom) viennent rapidement ternir le tableau et laisse JavaFx sur le bord de la route, loin derrière ses concurrents directs sur mobile.</p><table><tr
valign="middle"><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/pausitif.gif" alt="plus" title="plus"  /></td><td><ol><li> Des possibilités intéressantes</li><li> De nombreuses ressources (officielles ou non)</li><li> Un émulateur fonctionnel</li></ol></td></tr><tr
valign="middle"><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/negatif.gif" alt="moins" title="moins" /></a></td><td><ol><li> Langage loin d&#8217;être <em>production ready</em></li><li> Pas d&#8217;API / de composants graphiques de haut niveau</li><li> Un environnement de développement réduit au strict minimum</li></ol></td></tr></table><table
align="center"><tr><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/javafx1.jpg" alt="javafx" title="javafx" /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/javafx2.jpg" alt="javafx" title="javafx" /></td></tr></table><h4><a
name="Android"></a>Android</h4><p>Il n&#8217;aura fallu que 3h (si si) pour répondre au cahier des charges : afficher des photos FlickR géolocalisées sur une carte. Entre la <a
href="http://developer.android.com/reference/com/google/android/maps/MapView.html" title="MapView" >MapView</a>, directement disponible dans le SDK Android et le <a
href="http://sourceforge.net/projects/flickrj/" title="wrapper Java de lapi FlickR" >wrapper Java de l&#8217;api FlickR</a> téléchargeable sur internet, très peu de code fut nécessaire pour développer les bases de cette application. Et c&#8217;est là toute la force d&#8217;Android !</p><p>D&#8217;autre part, contrairement à mes camarades, je n&#8217;ai pas eu à me préoccuper de toutes les connexions réseau. La carte se met à jour automatiquement et la communication vers le site de FlickR s&#8217;effectue par simple choix de protocole (REST ou SOAP).</p><p>Une fois ce POC terminé, seul un <em>gros</em> travail d&#8217;enrobage restait à effectuer :</p><ul><li>L&#8217;affichage des photos sur la map a nécessité la création d&#8217;un <a
href="http://mobdev.olin.edu/mobdevwiki/FrontPage/Tutorials/Map%20View" title="Overlay spécifique" >Overlay spécifique</a>, la  récupération des coordonnées GPS est passée par l&#8217;intermédiaire du <a
href="http://www.androidcompetencycenter.com/2009/01/android-location-api/" title="LocationManager" >LocationManager</a></li><li>La <a
href="http://kahdev.wordpress.com/2008/11/25/building-a-menu-for-your-android-v10-r1-app/" title="cration du menu" >création du menu</a> est aussi simple que d&#8217;ajouter des éléments dans une liste</li><li><a
href=" http://androidguys.com/?p=1891" title="Ldition des prfrences" >L&#8217;édition des préférences</a> s&#8217;effectue par simple description XML des écrans associés. Android se charge de sauvegarder celles-ci et de les rendre disponibles au reste de l&#8217;application</li><li>Externalisation de la recherche et récupération des informations des photos FlickR dans un <a
href="http://developerlife.com/tutorials/?p=356" title="service exécuté en background de l'application" >service exécuté en background de l&#8217;application</a>. Ainsi, l&#8217;UI ne reste pas bloquée lors de la récupération des photos. La communication entre le service et le front s&#8217;effectue par l&#8217;intermédiaire de messages : les <a
href="http://developer.android.com/reference/android/content/Intent.html" title="Intent" >Intent</a></li><li>Ajout de messages <a
href="http://developer.android.com/reference/android/widget/Toast.html" title="Toast" >Toast</a>, <a
href="http://www.maximyudin.com/2008/02/25/android/how-to-use-alertdialogbuilder-in-android-applications/" title="popup" >popup</a> et <a
href="http://www.anddev.org/show_notification_in_statusbar-t1019.html" title="notifications systme" >notifications système</a> en faisant vibrer le téléphone en rythme, juste histoire de jouer un peu avec le SDK</li><li>Affichage d&#8217;une <a
href=" http://markmail.org/message/uefm6ccn5sedmzhz" title="preview vido de lappareil photo du G1" >preview vidéo de l&#8217;appareil photo du G1</a> sur un canvas, il s&#8217;agit d&#8217;un point de départ à une fonctionnalité d&#8217;upload de photos FlickR</li></ul><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2009/06/android.jpg"><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/android-300x176.jpg" alt="android" title="android" width="300" height="176" /><br
/> </a></div><p>La communauté Android est assez active, il est aisé de trouver une solution à la plupart des questions et problèmes que vous pouvez rencontrer. De plus, la documentation officielle est plutôt bien fournie, même si elle souffre de quelques lacunes : certaines notions fondamentales comme les &#8216;Intent&#8217; y sont par exemple mal expliquées.</p><p>Tout cela fait que les développeurs Java ne devraient avoir aucun mal à se lancer dans l&#8217;aventure. D&#8217;ailleurs suite à la <a
href="http://blog.xebia.fr/2009/03/25/presentation-android-et-vous-quelle-technologie-mobile-preferez-vous/" title="premire prsentation Android" >première présentation Android</a> effectuée lors du XKE de mars, quelques-uns d&#8217;entre nous se sont essayés à écrire leurs propres applications : programme TV, Tetris&#8230;</p><table><tr
valign="middle"><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/pausitif.gif" alt="plus" title="plus"  /></td><td><ol><li> Environnement et programmation full Java</li><li> SDK puissant et relativement simple à utiliser</li><li> Utilisation possible d&#8217;api java existantes</li><li> Licence développeur donnant l&#8217;accès au market peu onéreuse (25 €)</li></ol></td></tr><tr
valign="middle"><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/negatif.gif" alt="moins" title="moins" /></a></td><td><ol><li> Technologie naissante</li><li> Widgets et vues moins beaux que sur l&#8217;iPhone</li><li> Premiers mobiles qualifiés par certains de &#8216;moches&#8217;</li></ol></td></tr></table><table
align="center"><tr><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/android-map.jpg" alt="android-map" title="android-map" /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/android-menu.jpg" alt="android-menu" title="android-menu" /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/android-notif.jpg" alt="android-notif" title="android-notif"  /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/android-prefs.jpg" alt="android-prefs" title="android-prefs"  /></td></tr></table><h4><a
name="iPhone"></a>iPhone</h4><p>Il m&#8217;a fallu attendre 2 semaines pour répondre au cahier des charges. L&#8217;api MapKit n&#8217;est pas accessible par les développeurs dans les versions 2.x.x du SDK d&#8217;iPhone. Heureusement, la nouvelle version 3.0 en beta est sortie avant la présentation des résultats. J&#8217;ai passé pas mal de temps pour comprendre l&#8217;utilisation des composants MkMapView et MkAnnotationView. Le résultat est impressionnant. Une carte très fluide annotée avec plus de 300 photos téléchargées en mode asynchrone.</p><p>D&#8217;autre part, à l&#8217;instar des concurrents, j&#8217;ai développé plus de fonctionnalités pour 50 heures de travail :</p><ul><li>Localisation des coordonnées GPS (longitude, latitude) de l&#8217;utilisateur.</li><li>Téléchargement des photos en mode asynchrone.</li><li>Cache des photos téléchargées.</li><li>Affichage des photos en liste.</li><li>Affichage des détails d&#8217;une photo (nom, auteur, commentaires).</li><li>Affichage des photos en taille réelle.</li><li>Affichage de toutes les photos au format tableau.</li><li>Affichage de la position de l&#8217;utilisateur sur la carte.</li><li>Annotation de la carte avec plus de 300 photos.</li></ul><p>La récupération des photos et de leurs informations de FlickR s&#8217;effectue par le protocole REST en mode asynchrone.</p><p>Une fois le développement terminé, j&#8217;ai passé beaucoup de temps pour déployer l&#8217;application sur l&#8217;iPhone. Plusieurs étapes sont nécessaires pour créer un profil développeur et pour générer les certificats nécessaires pour le déploiement de l&#8217;application sur l&#8217;iPhone.</p><p>Les développeurs Java auront du mal à se lancer dans l&#8217;aventure. La prise en main de l&#8217;iPhone SDK nécessite beaucoup de temps. Il faut apprendre un nouveau langage (Objective-C) et de nouveaux outils pour se lancer dans le développement (Xcode, Interface builder, Instruments, Shark).</p><p>La richesse des frameworks dépasse de loin celles des concurrents. La maturité des frameworks Cocoa utilisés comme couche basse de l&#8217;iPhone OS donne aussi un grand avantage à l&#8217;iPhone SDK.</p><table><tr
valign="middle"><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/pausitif.gif" alt="plus" title="plus"  /></td><td><ol><li> Un téléphone sexy</li><li> Multi-Touch</li><li> Technologie mature</li><li> Outils de développement complets et simples d&#8217;utilisation</li><li> SDK puissant, complet et relativement simple à utiliser</li><li> Beaucoup de composants graphiques de haut niveau</li></ol></td></tr><tr
valign="middle"><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/negatif.gif" alt="moins" title="moins" /></a></td><td><ol><li> L&#8217;iPhone SDK nécessite un MAC OS X 10.5.4+</li><li> Langage de programmation complexe</li><li> Licence développeur payante (99$)</li></ol></td></tr></table><table
align="center"><tr><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/1.jpg" alt="iphone1" title="iphone1" /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/2.jpg" alt="iphone2" title="iphone2" /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/3.jpg" alt="iphone3" title="iphone3"  /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/4.jpg" alt="iphone4" title="iphone4"  /></td></tr><tr><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/5.jpg" alt="iphone5" title="iphone5" /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/6.jpg" alt="iphone6" title="iphone6" /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/7.jpg" alt="iphone7" title="iphone7"  /></td><td> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/06/8.jpg" alt="iphone8" title="iphone8"  /></td></tr></table><h3><a
name="Conclusions"></a>Conclusions</h3><p>Bien qu&#8217;il soit difficile de tirer de grands enseignements généraux sur des technologies ayant un vécu et un parcours si différent on retiendra :</p><ul><li>l&#8217;iPhone est définitivement le grand gagnant de l&#8217;expérience utilisateur. Mais la prise en main du langage peut constituer un très grand frein à l&#8217;adoption de cette technologie par les développeurs Java.</li><li>le Google Phone constitue la bonne surprise de ce contest. Le développement en full Java parle aux techniciens que nous sommes, et l&#8217;expérience utilisateur, même si elle n&#8217;est pas à la hauteur de celle que peut proposer l&#8217;iPhone, est très convaincante.</li><li>l&#8217;hypothétique JavaFxPhone reste sur le bord de la route. Même si les possibilités entrevues sont prometteuses, le manque de maturité de l&#8217;ensemble le condamne à rester dans l&#8217;ombre de ses concurrents, dans l&#8217;attente d&#8217;une version plus aboutie et plus riche.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/06/17/xebia-mobile-application-contest-java-fx-android-iphone/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Google I/O 2009 &#8211; annonces et stratégie Google</title><link>http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/</link> <comments>http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#comments</comments> <pubDate>Mon, 01 Jun 2009 12:58:21 +0000</pubDate> <dc:creator>Erwan Alliaume</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Mobilité]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Chrome]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[googleio]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[GWT Query]]></category> <category><![CDATA[HTML 5]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[wave]]></category> <category><![CDATA[Widgets]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2068</guid> <description><![CDATA[Google I/O 2009 s&#8217;est tenu la semaine dernière à San Francisco. Il s&#8217;agit d&#8217;une des conférence destinées aux développeurs utilisateurs des applications et des API de Google. Faute d&#8217;avoir eu l&#8217;occasion de me rendre sur place, j&#8217;ai essayé de suivre d&#8217;aussi prêt que possible son déroulement. Vu de l&#8217;extérieur : du grand spectacle ! Dans [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://code.google.com/events/io/" title="Google IO 2009" >Google I/O 2009</a> s&#8217;est tenu la semaine dernière à San Francisco. Il s&#8217;agit d&#8217;une des conférence destinées aux développeurs utilisateurs des applications et des API de Google. Faute d&#8217;avoir eu l&#8217;occasion de me rendre sur place, j&#8217;ai essayé de suivre d&#8217;aussi prêt que possible son déroulement. Vu de l&#8217;extérieur : du grand spectacle !</p><p>Dans cet article, je vais donc revenir sur les annonces et points marquants de ces deux jours de conférences.</p><p>D&#8217;autre part, les vidéos des keynotes sont disponibles, vous pouvez consulter celle du <a
href="http://www.youtube.com/watch?v=S5aJAaGZIvk" title="premier jour" >premier jour</a> (html5, android, web components &#8230;) ou celle du <a
href="http://www.youtube.com/watch?v=v_UyVmITiYQ" title="second jour" >second jour</a> (google wave).</p><p>Google I/O 2009, voici ce que j&#8217;en ai retenu  :</p><ul><li>Le futur du Web, avec les premières <strong>démonstrations émoustillantes <a
href="http://dev.w3.org/html5/spec/Overview.html" title="HTML 5" >HTML 5</a></strong>.</li><li><strong><a
href="http://wave.google.com" title="Google Wave" >Google Wave</a></strong>, le prochain outil de communication et collaboration made in Google.</li><li>La réconciliation de Google avec GWT et la sortie de <strong>GWT Query</strong>.</li><li>Le futur d&#8217;Android, avec l&#8217;annonce de la branche <strong>Android 2.0 : Donut</strong>.</li><li>Java sur Google App Engine en GA.</li><li><strong>Google Web Elements</strong>, comment intégrer les services Google dans vos pages web.</li><li>Les macros dans Google Document, avec <strong>Google Apps Script</strong>.</li><li>Arrivée des <strong>extensions dans Chrome</strong>.</li></ul><h3><a
name="HTMLlepremierwhaoueffect"></a>HTML 5, le premier whaou effect</h3><p>C&#8217;est la première fois que HTML 5 me fait rêver. C&#8217;est en effet un sacré coup de pouce que Google à donné afin de faire taire les <a
href="http://blog.xebia.fr/2008/08/11/revue-de-presse-xebia-69/#HTMLimmobilisparlestergiversat" title="tergiversions" >tergiversions</a>. Google a pris position, et nous en a mis plein la vue ! C&#8217;est ainsi qu&#8217;a débuté le premier jour de conférence avec <a
href="http://www.youtube.com/watch?v=W4FbF8GKChk" title="une vido dintroduction de 5 minutes" >une vidéo d&#8217;introduction de 5 minutes</a> présentant des applications écrites avec HTML 5. Application ai-je dit ? Eh bien oui, il semble bien loin le temps de la page web statique. Il semble bien loin le temps des hacks Javascript, arrêtons la bidouille et commençons le développement d&#8217;applications riches : c&#8217;est en tout cas ce que nous promet Google avec le HTML 5. Tout cela sans nécessiter le moindre plugin &#8230; pour peu que vous ayez un navigateur compatible.</p><p>Pour Google, le navigateur a encore de beaux jours devant lui. Installé sur prêt d&#8217;un <a
href="http://www.findmysoft.com/news/Google-I-O-2009-HTML-5-Web-Elements-App-Engine-Google-Earth-Android-Hardware/" title="demi-milliard d'ordinateurs" >demi-milliard d&#8217;ordinateurs</a>, il reste le moyen le plus simple et répandu pour accéder à Internet. Google l&#8217;a bien compris et a participé à la course <a
href="http://celtickane.com/labs/web-browser-javascript-benchmark/" title="aux performances des moteurs JavaScript" >aux performances des moteurs JavaScript</a>. En un an, les performances des moteurs JavaScript ont été multipliées par 5 ! Vous n&#8217;êtes pas fan de JavaScript, il faudra pourtant vous y faire. Comme nous vous pourrez le constater dans la suite de cet article, ce langage est l&#8217;un des points centraux de la stratégie Google.</p><p>Sans le savoir, vous possédez peut-être déjà l&#8217;un des navigateurs compatibles avec certaines fonctionnalités HTML 5, si tel est le cas vous pouvez lancer certaines des <a
href="http://htmlfive.appspot.com/" title="dmonstrations prsentes" >démonstrations présentées</a> directement depuis celui-ci.</p><p>Les principales nouveautés apportées par HTML 5 sont :</p><ul><li>Les <a
href="http://fr.wikipedia.org/wiki/Canvas_(balise_html)" title="canvas" >canvas</a>, zone sur laquelle il est possible de <em>dessiner</em> et d&#8217;effectuer des transformations : agrandissement, rotations, translations sur différents types de figures.</li><li>Des balises <em>audio</em> et <em>video</em>, qui permettent d&#8217;intégrer des médias dans le document sans nécessiter un plugin externe. Elles disposent de fonctionnalités similaires aux lecteurs <a
href="http://www.adobe.com/fr/products/flash" title="Flash" >Flash</a> ou <a
href="http://silverlight.net" title="Silverlight" >Silverlight</a> vous permettant de contrôler le comportement de vos médias.</li><li>Les <a
href="http://blog.whatwg.org/the-road-to-html-5-episode-1-the-section-element" title="sections" >sections</a> permettent de diviser vos pages en parts sémantiques. Elles se différencient des balises <em>div</em> qui ont pour rôle principal la présentation. Une section est complétée par un <em>header</em> et un <em>footer</em>.</li><li>Un nouvel attribut <em>async</em> pour les balises <em>script</em>, il permet d&#8217;exécuter un script indépendamment de l&#8217;affichage de la page. Ces scripts pourront s&#8217;activer à la demande selon la disponibilité de ressources.</li></ul><p>HTML 5 vous propose donc de transformer vos pages web en application riche, ce nouveau balisage vous permet de tirer pleinement partie de contenu multimédia sans nécessiter de plugin extérieur.</p><h3><a
name="GoogleWavelagrosseannoncedelac"></a>Google Wave, la grosse annonce de la conférence</h3><p>Sans conteste la grosse annonce de Google durant ces 2 jours, Google a annoncé la sortie prochaine de <a
href="http://wave.google.com/" title="Google Wave" >Google Wave</a>. Il s&#8217;agit d&#8217;un nouvel outil Open Source de communication et de collaboration, initié à l&#8217;origine par les deux frères Rasmussen, déjà à l&#8217;origine de Google Maps. Leur point de départ, à quoi les emails ressembleraient s&#8217;ils avaient été inventés aujourd&#8217;hui ? Après nous avoir parlé d&#8217;HTML 5 et d&#8217;applications riches, Google dévoile comment ils comptent tirer parti de ces nouveautés. A la vue du résultat, difficile de croire que l&#8217;application fonctionne sur un simple navigateur. Je vous encourage vivement de <a
href=" http://www.youtube.com/watch?v=v_UyVmITiYQ" title="regarder la démonstration" >regarder la démonstration</a>, le moins que l&#8217;on puisse dire est qu&#8217;elle donne envie <a
href="https://services.google.com/fb/forms/wavesignup/" title="dessayer le produit" >d&#8217;essayer le produit</a>. Pour ma part, même si j&#8217;avoue bien volontiers avoir été moins époustouflé qu&#8217;à la sortie de Google Earth il y a quelques années, il faut bien admettre qu&#8217;une fois encore Google est moteur d&#8217;innovations. Tout comme la sortie de Gmail, fort est à parier qu&#8217;une multitude de concurrents essayeront en vain d&#8217;égaler cette nouveauté. Et si une page était en train de se tourner dans le développement d&#8217;applications Web ?</p><p>Là où les emails permettaient un échange point à point, Google Wave centralise et met à disposition le contenu. On n&#8217;envoie pas une <em>Wave</em>, on y participe. L&#8217;historique des modifications des conversations (texte, média, widget) est stocké sur un serveur. Ainsi, tout nouveau participant pourra rejouer intégralement celle-ci.</p><p>Google Wave est un mixte entre email, messagerie instantanée, réseaux sociaux, partages de documents. Il se base sur un <a
href="http://www.waveprotocol.org/" title="protocole spcialement" >protocole spécialement</a> créé pour l&#8217;occasion. Celui-ci permet la transmission d&#8217;incréments de données et permet, entre autres, l&#8217;affichage caractère par caractère d&#8217;une conversation au fur et à mesure de la rédaction par son auteur.</p><p>Bien plus qu&#8217;une application, Google Wave est également contrôlable via une API spécifique. Vous pourrez donc y utiliser ces services à votre guise pour modeler vos propres solutions. Du coup, fort est à parier que Google Wave sera également disponible sous la forme de widget à utiliser sur vos blogs, sites web &#8230;</p><p>Pour plus d&#8217;information sur le sujet, vous pouvez <a
href=" http://mashable.com/2009/05/28/google-wave-guide/" title="consulter cette page" >consulter cette page</a> sur laquelle l&#8217;auteur à centralisé les informations, définitions et fonctionnalités de Google Wave.</p><h3><a
name="GWTaucurdelastratgieGoogle"></a>GWT, au cœur de la stratégie Google ?</h3><p>L&#8217;autre grosse surprise avec l&#8217;arrivée de Google Wave, l&#8217;utilisation de GWT à grande échelle dans un produit Google !</p><p>Jusqu&#8217;ici, il était drôle de constater que si GWT avait bien été créé intégralement en interne chez Google, au final, aucun produit phare n&#8217;utilisait cette technologie. Et bien, ceci sera bientôt du passé ! Non seulement le client Wave a été écrit en GWT, mais Google continue à investir beaucoup sur cette technologie. Certes GWT à tout de même dû subir pour l&#8217;occasion quelques modifications, mais force est de constater que GWT semble plus que jamais au centre de la stratégie Google. GWT permettra également la création d&#8217;applications pour Android et iPhone. C&#8217;est comme si Google voulait nous faire oublier nos applications locales/desktop aux bénéfices d&#8217;applications légères/riches.</p><p>Google I/O, c&#8217;est également l&#8217;annonce de la sortie de <a
href="http://code.google.com/p/gwtquery/" title="Gwt Query" >Gwt Query</a> : un clone de jQuery pour GWT. Cette nouvelle Api permet d&#8217;ajouter du comportement côté client sans rencontrer les lourdeurs des Widgets. À ce stage GWT Query reprend 98% des fonctionnalités de jQuery.</p><h3><a
name="AndroidDonutrecherchesetfiltre"></a>Android 2.0 Donut, recherches et filtres</h3><p>A l&#8217;heure où les premiers téléphones Android arrivent tout juste en France, Google a annoncé la création de la branche 2.0, appelée Donut. Sortie prévue : fin 2009.</p><p>Comme le communiquent <a
href=" http://www.zdnet.fr/actualites/telecoms/0,39040748,39501591,00.htm" title="certains" >certains</a>, 2009 sera probablement l&#8217;année d&#8217;Android. Si à ce jour seuls deux mobiles sous ce système sont timidement sortis en France, Google <a
href="http://bits.blogs.nytimes.com/2009/05/27/google-expect-18-android-phones-by-years-end/" title="attend la sortie dune vingtaine dappareils" >attend la sortie d&#8217;une vingtaine d&#8217;appareils</a> (pour une dizaine de fabriquants) en 2009.</p><p>Google I/O a donc été l&#8217;occasion de faire un point sur la roadmap de cette nouvelle version, celle-ci est prévue pour fin 2009 :</p><ul><li>Recherche globale : un champ de recherche commun pour le web, la musique, les contacts&#8230; C&#8217;est en effet, l&#8217;un des défauts de la version actuelle, le market nous encourage à installer toujours plus d&#8217;applications, il s&#8217;avère pour le moment peu pratique de retrouver celle que l&#8217;on cherche. J&#8217;avais d&#8217;ailleurs l&#8217;idée de développer une application &#8216;launcher&#8217;, je vais donc pouvoir nettoyer ma todo-list. Cette recherche globale vous permet donc d&#8217;effectuer des recherches aussi bien en local sur votre téléphone qu&#8217;en connecté sur le web. Démonstration de la fonctionnalité après la 3e minute <a
href="http://www.youtube.com/watch?v=uX9nt8Cpdqg&#038;feature=channel" title="de cette vido" >de cette vidéo</a>.</li><li>Contrôle par la voix : Android 1.5 (Cupcake) a introduit les embryons de Google Voice Search, vous permettant de lancer des recherches Google par la voix. Donut va davantage utiliser cette fonctionnalité qui vous permettra aussi bien d&#8217;appeler un contact que de contrôler vos applications à la voix. Ces fonctionnalités seront intégrées aux applications Google, mais pas seulement. Vous pourrez les utiliser dans vos applications via la nouvelle API. Révolutionnaire ? par forcément, j&#8217;ai utilisé cette fonctionnalité pour la première fois sur Pocket PC il y a 3 ans avec <a
href="http://www.microsoft.com/france/cp/2005/3/05030801_a79.mspx" title="Microsoft Voice Command" >Microsoft Voice Command</a>.</li><li>Synthèse vocale : vous contrôlez votre téléphone par la voix, celui-ci sait également vous parler. Donut offrira également des fonctionnalités de text2speach multi-langues, la présentation à été portée par une <a
href="http://www.youtube.com/watch?v=DZ-MZnMLb_A" title="application de traduction" >application de traduction</a> plutôt réussie.</li><li>Contrôle par le geste : votre téléphone sera capable également de reconnaître via l&#8217;écran tactile des formes complexes. Cela vous permettra entre autres de filtrer une liste de contacts en dessinant la première lettre du nom recherché.</li></ul><p>Pour clôturer ce sujet, notez l&#8217;ouverture d&#8217;un nouveau concours mondial de programmation sur Android : <a
href="http://code.google.com/intl/fr-FR/android/adc/" title="Android Developper Challenge 2" >Android Developper Challenge 2</a> avec de belles récompenses à la clé.</p><h3><a
name="JavasurGoogleAppEngineouvertto"></a>Java sur Google App Engine, ouvert à tous</h3><p>Bien qu&#8217;aucune annonce n&#8217;ait encore été faire sur le <a
href="http://googleappengine.blogspot.com/" title="blog officiel" >blog officiel</a>, il semblerait que Google ait annoncé officiellement le support Java sur <a
href="http://code.google.com/intl/fr/appengine/" title="Google App Engine" >Google App Engine</a>, ce qui veut dire : ouvert à tous. En effet, <a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#GoogleAppEnginepourJavaetGroov" title="en avril dernier" >en avril dernier</a>, Google avait déjà pré-ouvert sa plateforme aux langages Java et Groovy aux 10 000 premiers inscrits.</p><h3><a
name="GoogleWebElementswidgetspourvo"></a>Google Web Elements, widgets pour vos sites internet</h3><p><a
href="http://www.google.com/webelements/" title="Google Web Elements" >Google Web Elements</a> vous permet d&#8217;utiliser les services Google sous la forme de widgets sur vos blogs ou sites web. Ces widgets nous permettront par exemple d&#8217;afficher facilement nos présentations PowerPoint sur le blog, les sites du type <a
href="http://www.slideshare.net/" title="Slideshare" >Slideshare</a> doivent grincer des dents&#8230;</p><p>Le fonctionnement est très simple :</p><ul><li>Rendez-vous sur le site de <a
href="http://www.google.com/webelements/" title="Google Web Elements" >Google Web Elements</a> pour choisir votre type de Widget.</li><li>Configurez-le en ligne via un simple formulaire permettant de générer le code HTML et JavaScript représentant le widget.</li><li>Copier-collez le code sur votre site ou blog.</li></ul><p>Huit applications sont disponibles pour le moment: Calendar, Presentation, Conversation, Custom Search, Maps, News, Spreadsheets et Youtube News.</p><h3><a
name="GoogleAppsScriptscriptezvosGoo"></a>Google Apps Script, scriptez vos Google Documents</h3><p>Google IO c&#8217;est du grand spectacle, comme nous l&#8217;avons vu durant les keynotes, mais aussi des annonces plus terre-à-terre : <a
href="http://www.youtube.com/watch?v=7ux-IexZFec" title="Google Apps Script" >Google Apps Script</a> en est un bon exemple. Avec cette fonctionnalité, il vous sera donc possible prochainement d&#8217;ajouter des fonctionnalités de scripting dans vos documents. Le développement de ces &#8216;macros&#8217; s&#8217;effectuera entièrement en JavaScript à partir d&#8217;un éditeur intégré aux différentes applications Google Document. Je vous invite à consulter une <a
href="http://www.youtube.com/watch?v=YJPsJOkaAzU" title="vido de dmonstration" >vidéo de démonstration</a> durant laquelle le présentateur effectue une macro d&#8217;envoi d&#8217;email.</p><h3><a
name="Chromearrivedesextensions"></a>Chrome, arrivée des extensions</h3><p>Comme certains le savent déjà, Chrome, le navigateur internet made in Google, proposera prochainement <a
href="http://dev.chromium.org/developers/design-documents/extensions/" title="un système de gestion d'extensions" >un système de gestion d&#8217;extensions</a>. Il vous est d&#8217;ailleurs déjà possible de commencer à écrire vos propres extensions en utilisant <a
href="http://dev.chromium.org/getting-involved/dev-channel" title="le dernier build developper" >le dernier build developper</a>, je m&#8217;y suis d&#8217;ailleurs essayé comme vous avez pu le <a
href="http://twitter.com/ealliaume" title="lire sur mon twitter" >lire sur mon twitter</a>. Si cela vous intéresse, jetez un coup d&#8217;œil au <a
href="http://dev.chromium.org/developers/design-documents/extensions/howto" title="howto" >howto</a> vous permettant de créer votre premier plugin en 30 secondes chrono.</p><p>Les extensions sont des archives ZIP contenant du HTML, des CSS et du JavaScript. Chaque partie d&#8217;UI d&#8217;une extension se présente sous la forme d&#8217;une simple page internet. Du coup, vous utilisez les mêmes outils, même debugger, mêmes librairies JavaScript et les mêmes techniques de programmation que pour créer vos pages web. Google a particulièrement bien travaillé son API pour la rendre aussi simple que possible.</p><p>Chrome dispose depuis <a
href="http://blog.xebia.fr/2008/09/09/google-chrome-1-semaine-apres/#Unrendustandardetquelquesnouve" title="sa premire version" >sa première version</a> d&#8217;une gestion des processus bien ficelée : chaque onglet dispose de son propre processus rendant de ce fait difficile de planter le navigateur à cause d&#8217;une des pages web. Les extensions fonctionneront sur un principe similaire et disposeront donc également de leur propre processus.</p><p>Les extensions seront distribuées sous la forme de fichier CRX composé de :</p><ul><li>Une signature, pour éviter les attaques du type Man In The Middle.</li><li>Un manifeste, contenant les informations générales (nom, version &#8230;).</li><li>Un fichier zip avec le contenu.</li></ul><p>Tiens tiens, cela n&#8217;est pas sans nous rappeler le packaging des applications Android&#8230;</p><div
align="center"> <a
href="http://twitter.com/ealliaume" ><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png"  alt="twitter erwan alliaume" title="twitter erwan alliaume" border="0" /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/</link> <comments>http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#comments</comments> <pubDate>Tue, 14 Apr 2009 17:07:06 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[Groovy]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBI]]></category> <category><![CDATA[Lucene]]></category> <category><![CDATA[OSGi]]></category> <category><![CDATA[ServiceMix]]></category> <category><![CDATA[SOA]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1758</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Google App Engine pour Java et Groovy SOA Le statut de JBI 2 en question Mobilité Preview d&#8217;Android 1.5 Le coin de la technique Lucene continue d&#8217;innover ServiceMix 4 et son kernel OSGi Évènements de notre communauté en France et [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#GoogleAppEnginepourJavaetGroov">Google App Engine pour Java et Groovy</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#LestatutdeJBIenquestion">Le statut de JBI 2 en question</a></li></ul><p><strong>Mobilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#PreviewdAndroid">Preview d&#8217;Android 1.5</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#Lucenecontinuedinnover">Lucene continue d&#8217;innover</a></li><li><a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#ServiceMixetsonkernelOSGi">ServiceMix 4 et son kernel OSGi</a></li></ul><p><strong>Évènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#LesCastCodeurslepodcastJavaenF">Les Cast Codeurs, le podcast Java en Français</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="GoogleAppEnginepourJavaetGroov"></a>Google App Engine pour Java et Groovy</h4><p><a
href="http://code.google.com/intl/fr/appengine/" title="Google App Engine" >Google App Engine</a>, solution de Cloud Computing proposée par Google supporte depuis la semaine dernière (en plus du langage Python disponible depuis un an) le langage Java. Cette solution permet dorénavant de déployer son application web à base de servlets (sous forme de war) sur un serveur virtuel hébergé sur l&#8217;infrastucture de production de Google (Google a donné la semaine dernière un compte Google App Engine Java aux 10 000 premiers inscrits).</p><p>Google met en avant les avantages suivants :</p><ul><li>La facilité d&#8217;utilisation via un SDK très documenté et des plugins Eclipse.</li><li>La scalabilité gérée de manière transparente et automatique</li><li>La fiabilité et la performance fournies par les infrastructures de Google</li><li>Enfin, App Engine est gratuit si votre serveur n&#8217;excède les 500 Mo de stockage et 5 millions de page visualisées par mois</li></ul><p>Google fait une entrée de manière fracassante dans le marché du cloud computing &laquo;&nbsp;Java&nbsp;&raquo; (Amazon EC2, etc.. ) et propose une offre séduisante où chacun peut créer, tester et déployer son application facilement. La création d&#8217;un projet App Engine sous Eclipse via le plugin est simple et le déploiement sur App Engine s&#8217;effectue en un seul clic.</p><p>Quelques liens utiles :</p><ul><li>vous pouvez trouver une description très complète de la solution (en Français) <a
href="http://arnulfo.net/2009/04/google-app-engine-et-java-une-revolution/" title="sur le blog de Frank Arnulfo" >sur le blog de Frank Arnulfo</a></li><li>David Gageot a mis en ligne une feuille Google Spreadsheet qui <a
href="http://sunchic.free.fr/wordpress/index.php/archives/2009/04/12/java-libraries-and-frameworks-supported-by-google-app-engine/" title="liste les librairies et frameworks Java supports par Google App Engine" >liste les librairies et frameworks Java supportés par Google App Engine</a></li><li>Groovy est également supporté, retrouvez <a
href="http://glaforge.free.fr/weblog/index.php?itemid=268" title="lannonce sur le blog de Guillaume Laforge" >l&#8217;annonce sur le blog de Guillaume Laforge</a></li></ul><h3><a
name="SOA"></a>SOA</h3><h4><a
name="LestatutdeJBIenquestion"></a>Le statut de JBI 2 en question</h4><p>La <a
href="http://jcp.org/en/jsr/detail?id=312" title="JSR-312 : Java Business Integration 2.0 (JBI)" >JSR-312 : Java Business Integration 2.0 (JBI)</a> a été initiée début 2007 pour pallier les défauts de la première version de ce standard (<a
href="http://jcp.org/en/jsr/detail?id=208" title="JSR208  JBI" >JSR-208 : JBI</a>). Cette dernière souffrait en effet de nombreuses critiques, portant principalement sur sa lourdeur excessive et son indépendance vis-à-vis des autres standards existants (SCA, EJB3, JAX-WS, &#8230;).</p><p>Le projet était alors ambitieux mais la perspective d&#8217;un tel standard ne manquait pas d&#8217;intérêt. Toutefois, deux ans après sa création, le statut de cette JSR, tel qu&#8217;affiché sur sa page du JCP, reste toujours inchangé et la JSR est maintenant classée &laquo;&nbsp;inactive&nbsp;&raquo;.<br
/> Ron Ten-Hove (<em>co-spec lead</em> de la JSR), vient toutefois d&#8217;apporter une information discrète quant à l&#8217;activité de l&#8217;<em>Expert Group</em> associé sur <a
href="http://n2.nabble.com/JBI-2.0,-open-esb-future---td2607990.html" title="la mailing list du projet OpenESB" >la mailing list du projet OpenESB</a>. Il indique que le développement de la JSR n&#8217;est pas interrompu et que la classification d&#8217;inactivité est uniquement due à une nouvelle règle du JCP qui étiquette ainsi les JSRs dont le statut n&#8217;a pas évolué depuis 18 mois. Ceci ne refléterait donc pas le niveau d&#8217;activité au sein de l&#8217;<em>Expert Group</em>. Aucune date ni évolution de planning ne sont par contre indiquées.</p><p>Le standard JBI 1.0 est boudé par un grand nombre de produits commerciaux et Open Source qui préfèrent épouser la vague des &laquo;&nbsp;lightweight ESB&nbsp;&raquo; dont <a
href="http://blog.xebia.fr/2007/12/17/spring-integration-lavenement-des-lightweight-esb/" title="nous vous parlions dj il y a un an" >nous vous parlions déjà il y a un an</a>. Toutefois l&#8217;arrivée tardive d&#8217;un standard faisant consensus n&#8217;est pas forcément un frein à son adoption comme l&#8217;a montré EJB 3 remplaçant avec succès ses très lourds prédécesseurs ; la voie reste donc ouverte pour JBI 2.0 et l&#8217;avenir nous dira si la tâche n&#8217;était pas trop lourde.</p><h3><a
name="Mobilit"></a>Mobilité</h3><h4><a
name="PreviewdAndroid"></a>Preview d&#8217;Android 1.5</h4><p>En attendant la sortie finale d&#8217;Android 1.5 (Cupcake) à la fin du mois, Android Developers Blog <a
href="http://android-developers.blogspot.com/2009/04/getting-ready-for-android-15.html" title="annonce la sortie dune prversion du SDK 15" >annonce la sortie d&#8217;une pré-version du SDK 1.5</a> pour les développeurs d&#8217;applications Android.<br
/> Parmi <a
href="http://developer.android.com/sdk/preview/features.html" title="la liste complte des nouveauts dAndroid 15" >la liste complète des nouveautés d&#8217;Android 1.5</a>, cette pré-version du SDK propose notamment:</p><ul><li>le <a
href="http://androidcommunity.com/android-getting-virtual-keyboard-20081024" title="clavier virtuel" >clavier virtuel</a></li><li>le développement de widgets pour l&#8217;écran d&#8217;accueil (à l&#8217;image de l&#8217;horloge ou du widget de recherche qui existent déjà dans Android)</li><li>la fonctionnalité <a
href="http://www.readwriteweb.com/archives/live_folders_bring_the_real-time_web_to_android.php" title="live folders" >live folders</a></li><li>la reconnaissance vocale</li></ul><p>Ce nouveau SDK propose également une avancée intéressante : la possibilité de gérer plusieurs versions du SDK en parallèle, par exemple ici les versions 1.1 et 1.5. Les développeurs pourront donc tester leur application sur plusieurs environnements sans manipulations fastidieuses.<br
/> Afin de commencer à tester vos applications sur cette nouvelle version d&#8217;Android, vous pouvez télécharger ce SDK 1.5 <a
href="http://developer.android.com/sdk/preview/" title="en cliquant ici" >en cliquant ici</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Lucenecontinuedinnover"></a>Lucene continue d&#8217;innover</h4><p>Le projet <a
href="http://lucene.apache.org/" title="Apache Lucene" >Apache Lucene</a> reste une source d&#8217;innovation importante au fil des années. Il compte en effet huit sous-projets, chacun apportant son lot d&#8217;outils et d&#8217;APIs additionnelles permettant de mettre en œuvre un moteur de recherche toujours plus élaboré.Ces sous-projets vont parfois au-delà du simple environnement de Lucene, comme cela a été le cas avec <a
href="http://hadoop.apache.org/core/" title="Hadoop" >Hadoop</a>, qui <a
href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#AmazonlancesonserviceElasticMa" title="gagne actuellement en popularité" >gagne actuellement en popularité</a> et dont le moteur <a
href="http://labs.google.com/papers/mapreduce.html" title="MapReduce" >MapReduce</a> est réutilisé par de nombreux autres projets.</p><p>Dernière preuve en date de cette activité, le sous-projet <a
href="http://lucene.apache.org/mahout/" title="Mahout" >Mahout</a>, <a
href="http://www.mail-archive.com/announce@apache.org/msg00466.html" title="créé en Janvier 2009" >créé en Janvier 2009</a> et qui vient <a
href="http://lucene.grantingersoll.com/2009/04/07/apache-mahout-01-released/" title="dtre annonc en version 01" >d&#8217;être annoncé en version 0.1</a>, a pour but de fournir des implémentations d&#8217;algorithmes de <em>machine learning</em>, la plupart pouvant être distribués grâce à Hadoop. Ces algorithmes couvrent principalement :</p><ul><li>La classification et le <em>clustering</em> : permettent de catégoriser, tagger et séparer des données en groupes. Ainsi enrichies, ces données pourraient par exemple être plus facilement exploitables et accessibles par un moteur de recherche qui saurait exploiter ces informations lors de son processus d&#8217;indexation.</li><li>Le <em>collaborative filtering</em> : permet de créer des systèmes d&#8217;associations d&#8217;objets par apprentissage, du type &laquo;&nbsp;les utilisateurs ayant acheté cet article ont également acheté &#8230;&nbsp;&raquo;. Cette fonctionnalité est offerte par le moteur <a
href="http://lucene.apache.org/mahout/taste.html" title="Taste" >Taste</a> de Mahout.</li></ul><p>Ces technologies sont actuellement plus proches du monde de la recherche que de celui de l&#8217;informatique de gestion en entreprise. Et c&#8217;est bien là que va résider tout le défit pour Mahout : parvenir à proposer une API simple et robuste pour offrir ces fonctionnalités à moindre coût aux applications d&#8217;entreprise. Actuellement peu courants, les cas d&#8217;utilisation pourraient se multiplier avec la mouvance globale vers les technologies Web 2.0 et autre concepts liés à l&#8217;intelligence collective.</p><h4><a
name="ServiceMixetsonkernelOSGi"></a>ServiceMix 4 et son kernel OSGi</h4><p>L&#8217;équipe de ServiceMix a profité de la conférence <a
href="http://www.eu.apachecon.com/c/aceu2009/" title="ApacheCon Europe 2009" >ApacheCon Europe 2009</a> pour <a
href="http://gnodet.blogspot.com/2009/04/apache-servicemix-400-and-apache.html" title="annoncer" >annoncer</a> la sortie de la version 4.0 finale de leur ESB.<br
/> Rod Biresch <a
href="http://soatechlab.blogspot.com/2008/09/whats-new-in-servicemix-4x.html" title="prsentait en septembre dernier" >présentait en septembre dernier</a> les principaux apports de cette nouvelle version, ce qui permettait alors de constater qu&#8217;il s&#8217;agissait avant tout d&#8217;une refonte de l&#8217;architecture du projet. Ainsi, alors que ServiceMix 3 gravitait principalement autour de son conteneur JBI, son successeur utilise désormais un kernel basé sur OSGi et secondé par un module Normalized Message Router (NMR). Il donne naissance à deux sous-projets distincts : ServiceMix Kernel et ServiceMix NMR.</p><p>Cette nouvelle architecture permet à ServiceMix de gagner en évolutivité et n&#8217;a qu&#8217;un impact limité pour les développeurs utilisant cet ESB. Ainsi, les composants développés pour ServiceMix 3.x restent compatibles avec cette nouvelle version, tel que l&#8217;on pouvait s&#8217;y attendre du fait de la conservation du standard JBI.</p><p>En outre, Guillaume Nodet (<em>project lead</em> de ServiceMix) <a
href="http://gnodet.blogspot.com/2009/04/apache-karaf.html" title="nous apprend" >nous apprend</a> que le kernel de ServiceMix 4 attire d&#8217;autres projets de la fondation Apache (ActiveMQ, Directory et James) ce qui devrait conduire ServiceMix Kernel à devenir un sous-projet d&#8217;Apache Felix et à être, à priori, renommé pour l&#8217;occasion en Apache Karaf. OSGi continue ainsi de s&#8217;imposer massivement pour apporter la modularité dans les implémentations de conteneurs et middlewares Java, après avoir conquit le cœur de nombreux serveurs d&#8217;applications.</p><h3><a
name="vnementsdenotrecommunautenFran"></a>Évènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="LesCastCodeurslepodcastJavaenF"></a>Les Cast Codeurs, le podcast Java en Français</h4><p>A l&#8217;image du <a
href="http://javaposse.com/" title="Java Posse" >Java Posse</a> anglo-saxon, Emmanuel Bernard (JBoss, Hibernate), Guillaume Laforge (SpringSource, Groovy), Antonio Goncalves (freelance, auteur, Paris JUG) et Vincent Massol (XWiki, Maven) lancent <a
href="http://lescastcodeurs.com" title="Les Cast Codeurs" >Les Cast Codeurs</a>, podcast dédié aux nouvelles fraîches du monde Java, en Français !<br
/> Parmi les sujets discutés pendant cette première édition : Google App Engine, le rachat hypothétique de Sun par IBM ou Java EE 6 proposé en final draft.<br
/> On y entend beaucoup Emmanuel Bernard, beaucoup moins Vincent Massol, mais les propos et le format sont intéressants, longue vie aux Cast Codeurs !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Premiers pas dans Android</title><link>http://blog.xebia.fr/2009/03/26/premiers-pas-dans-android/</link> <comments>http://blog.xebia.fr/2009/03/26/premiers-pas-dans-android/#comments</comments> <pubDate>Thu, 26 Mar 2009 07:00:14 +0000</pubDate> <dc:creator>Guillaume Carre</dc:creator> <category><![CDATA[Mobilité]]></category> <category><![CDATA[Android]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1662</guid> <description><![CDATA[En novembre 2007, Google, des opérateurs mobiles et des fabricants de terminaux annoncent la création de l&#8217;Open Handset Alliance(tm). Le but de l&#8217;OHA : créer une plateforme mobile ouverte, riche, moins chère, et qui donne une meilleure expérience mobile. Quelques jours après l&#8217;annonce, l&#8217;OHA met rapidement à disposition une première version &#171;&#160;early look&#160;&#187; du SDK [...]]]></description> <content:encoded><![CDATA[<div
style="float:left; margin-right: 15px"> <a
href="http://developer.android.com"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/03/logo_android.gif" alt="Android" title="Android" width="194" height="27" /></a></div><p>En novembre 2007, <a
href="http://www.openhandsetalliance.com/oha_members.html" title="Google, des opérateurs mobiles et des fabricants de terminaux" >Google, des opérateurs mobiles et des fabricants de terminaux</a> annoncent la création de <a
href="http://www.openhandsetalliance.com" title="l'Open Handset Alliance(tm)" >l&#8217;Open Handset Alliance(tm)</a>. Le but de l&#8217;OHA : créer une plateforme mobile ouverte, riche, moins chère, et qui donne une meilleure expérience mobile. Quelques jours après l&#8217;annonce, l&#8217;OHA met rapidement à disposition une première version &laquo;&nbsp;early look&nbsp;&raquo; du SDK Android.<br
/> Un peu moins d&#8217;un an après la création de l&#8217;OHA, en septembre 2008, le premier mobile tournant sous Android est mis en vente sur le marché américain : le HTC G1. Enfin un système d&#8217;exploitation et des terminaux capables de rivaliser avec l&#8217;iPhone d&#8217;Apple (septembre 2008, soit un an et trois mois après la sortie de l&#8217;iPhone&#8230;) !</p><p>Comme pour l&#8217;iPhone, qui est sorti en France en novembre 2007 cinq mois après sa sortie américaine, les premiers téléphones Android arrivent avec un peu de retard sur le territoire français ce mois-ci. Les plus impatients avaient déjà importé l&#8217;Android Dev Phone 1 (version développeur du HTC G1). La sortie du HTC G1 chez Orange il y a quelques jours et la sortie du HTC G2 chez SFR, fin avril, va donner aux développeurs Java hexagonaux l&#8217;occasion de développer des applications mobiles dans leur langage préféré.</p><p>La plateforme présente en effet plusieurs intérêts pour le développeur Java :</p><ul><li>les applications Android sont développées à 100% dans le langage Java. Si vous vous êtes frottés au SDK de l&#8217;iPhone et son langage ObjectiveC, et que Java est votre langage de prédilection, développer pour Android est un vrai bonheur</li><li>à l&#8217;image de l&#8217;AppStore d&#8217;Apple et de ses success stories vendues 1$ pièce, Android dispose d&#8217;un équivalent, l&#8217;Android Market. Il permettra à la fois aux entreprises et aux développeurs de mettre leurs applications gratuites ou payantes à la disposition des possesseurs de téléphone Android</li></ul><p>Cet article vous présente les premiers pas du développeur Java dans la plateforme :</p><ul><li>les téléphones à disposition pour tester ses applications,</li><li>les guides de développement,</li><li>exemples de code et livres à lire pour monter en compétence,</li><li>et les différents sites spécialisés à suivre pour se tenir au courant de l&#8217;actualité Android.</li></ul><h3><a
name="AndroidenFrance"></a>Android en France</h3><h4><a
name="Lestlphones"></a>Les téléphones</h4><div
style="float:right;"> <a
href="http://www.htc.com/www/product/magic/overview.html"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/03/htc-magic-200x150.jpg" border="0" alt="HTC Magic" title="HTC Magic" /></a></div><div
style="float:right;"> <a
href="http://www.htc.com/www/product/dream/overview.html"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/03/htc-dream-200x150.jpg" border="0" alt="HTC Dream" title="HTC Dream" /></a></div><p>Orange a annoncé début mars <a
href="http://www.lemonde.fr/technologies/article/2009/03/04/orange-a-vendu-810-000-iphone-en-france-depuis-novembre-2007_1163300_651865.html" title="avoir vendu 810 000 iPhone" >avoir vendu 810 000 iPhone</a> depuis sa sortie en France en novembre 2007. 810 000 iPhone, ce sont plusieurs centaines de milliers d&#8217;acheteurs potentiels <a
href="http://www.apple.com/fr/iphone/features/appstore.html" title="d'applications dédiées à l'iPhone sur l'AppStore" >d&#8217;applications dédiées à l&#8217;iPhone sur l&#8217;AppStore</a>, la plate-forme de téléchargement d&#8217;applications mise en place par Apple un an après la sortie de l&#8217;iPhone, avec le succès qu&#8217;on lui connaît : des milliers d&#8217;applications, à des prix souvent très bas, compensés pour les éditeurs par le volume d&#8217;applications vendues, sur un modèle de partage des revenus entre Apple et l&#8217;éditeur (30% pour Apple, 70% pour l&#8217;éditeur). 810 000 iPhone en France, le retard est considérable pour la plate-forme Android, qui dispose elle aussi d&#8217;un magasin d&#8217;applications en ligne, <a
href="http://www.android.com/market/" title="Android Market" >Android Market</a>.</p><p>Le premier téléphone sous Android à sortir en France est le modèle de chez HTC qui est disponible depuis plusieurs mois aux États-Unis et au Royaume-Uni, le <a
href="http://www.htc.com/www/product/dream/overview.html" title="HTC Dream" >HTC Dream</a> (ou G1). Le Dream est commercialisé par Orange, qui au passage a gagné la première bataille qui l&#8217;oppose à SFR, puisque SFR sortira son premier téléphone sous Android avec plusieurs semaines de retard : le <a
href="http://www.htc.com/www/product/magic/overview.html" title="HTC Magic" >HTC Magic</a> (ou G2). Là où le Dream est un téléphone à clavier assez peu sexy, le Magic est plus proche de l&#8217;iPhone : sans clavier physique (c&#8217;est un désavantage pour certains), un grand écran, et des dimensions plus réduites que l&#8217;iPhone. Vous pouvez trouver un <a
href="http://www.presse-citron.net/htc-magic-android-test-et-presentation-video/trackback" title="HTC Magic sur le blog presse-citron" >test très complet du HTC Magic sur le blog presse-citron</a>.</p><p>Quelles sont les perspectives de vente pour ces deux terminaux ? Si l&#8217;on regarde de l&#8217;autre côté de la Manche, les volumes de vente du HTC Dream (G1) sont très proches de ceux de l&#8217;iPhone : <a
href="http://tempsreel.nouvelobs.com/depeches/medias/multimedia/20090313.ZDN8489/landroid_market_souvre_aujourdhui_aux_applications__pay.html" title="pour 10 iPhone vendus, on vend 7 HTC G1" >pour 10 iPhone vendus, on vend 7 HTC G1</a> (source Nouvel Obs). Orange et SFR peuvent donc rapidement vendre plusieurs dizaines de milliers de terminaux Android d&#8217;ici quelques mois. Mais au-delà des &laquo;&nbsp;early adopters&nbsp;&raquo; qui vont se jeter sur les modèles de chez HTC, ce sont certainement la sortie de modèles sous Android des autres grandes marques qui devraient faire exploser le parc de terminaux sous Android en France. A priori, tout est réuni pour que les constructeurs se mettent à Android : Android est gratuit, et l&#8217;OS est équivalent ou supérieur sur certains points à l&#8217;iPhone OS propriété d&#8217;Apple. Si les constructeurs sont restés assez discrets lors du récent Mobile World Congress de Barcelone, ils sont plusieurs à avoir récemment annoncé des terminaux pour 2009 (<a
href="http://www.vnunet.fr/news/mobile_world_congress_android_veut_seduire_les_constructeurs_peu_receptifs-2030178" title="LG Samsung" >LG, Samsung</a>). Il va effectivement falloir patienter, certainement jusqu&#8217;au second semestre pour voir la sortie de ces mobiles, mais on peut espérer début 2010 avoir un parc de plusieurs centaines de milliers de téléphones en France sous Android, ayant tous accès à Android Market et aux applications que vous aurez développées !</p><h4><a
name="ConcoursSFR"></a>Concours SFR</h4><p>À l&#8217;image de l&#8217;Android Developer Challenge il y a un peu moins d&#8217;un an qui avait permis aux développeurs des cinquante meilleures applications de <a
href="http://www.readwriteweb.com/archives/android_developer_challenge_winners_announced.php" title="repartir avec un chèque de 25 000 $" >repartir avec un chèque de 25 000 $</a>, SFR organise du 10 mars au 14 avril l&#8217;équivalent, le <a
href="http://www.sfrjtd.fr" title="concours SFR Jeunes Talents Dveloppeurs" >concours SFR Jeunes Talents Développeurs</a>.<br
/> L&#8217;initiative permet de mettre en avant la plateforme, et les quatre lauréats (plus un prix du public) se partageront un chèque de 50 000€, qui devrait leur permettre de continuer le développement de leur application.</p><h3><a
name="AndroidMarket"></a>Android Market</h3><div
style="float:left; margin-right: 15px"> <a
href="http://market.android.com"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/03/android_market.jpg" alt="Android market" title="Android market" width="51" height="60" /></a></div><p>Comme avec l&#8217;AppStore d&#8217;Apple, vous pouvez mettre les applications que vous allez développer à la disposition des possesseurs de téléphones Android sur <a
href="http://market.android.com" title="Android Market">Android Market</a>. AppStore est un immense succès pour Apple, et pour les développeurs des applications les plus téléchargées et vendues, voici quelques chiffres <a
href="http://www.engadget.com/2009/03/17/live-from-apples-iphone-os-3-0-preview-event" title="keynote iPhone OS 3.0" >issus de la récente keynote iPhone OS 3.0</a> :</p><ul><li>800 000 SDK téléchargés</li><li>60% des développeurs ne connaissaient pas la plateforme de développement Apple</li><li>plus de 25 000 applications sur l&#8217;AppStore</li><li>plus de 800 millions d&#8217;applications téléchargées</li></ul><p>L&#8217;Android Market est aujourd&#8217;hui bien loin de tous ces chiffres. Depuis seulement mi-février 2009, <a
href="http://android-developers.blogspot.com/2009/02/android-market-update-support-for.html" title="les dveloppeurs amricains et britanniques peuvent soumettre des applications payantes" >les développeurs américains et britanniques peuvent soumettre des applications payantes</a>.<br
/> Si les débuts devraient être modestes pour les applications Android, les gains engendrés par la vente d&#8217;applications Android devraient s&#8217;approcher des chiffres de vente de l&#8217;AppStore en début d&#8217;année prochaine. Si Android obtient le succès qu&#8217;on lui souhaite, et que plusieurs grands constructeurs (faisant partie de l&#8217;Open Handset Alliance) sortent des téléphones Android, il sera aussi intéressant de développer des applications pour l&#8217;AppStore que pour Android Market.</p><p>La marche à suivre pour mettre son application sur Android Market est la suivante :</p><ul><li>inscription au programme de développement, l&#8217;inscription coûte 25$ (100$ chez Apple)</li><li>mise en ligne de l&#8217;application, il n&#8217;y a pas de validation <em>a priori</em> des applications de la part de Google, on peut donc espérer que la mise en ligne soit bien plus rapide que sur l&#8217;AppStore (c&#8217;est un des reproches faits à Apple)</li><li>comme sur l&#8217;AppStore, les gains des ventes sont partagés (30% pour Google, 70% pour le développeur)</li><li>le développeur récupère ses gains via le &laquo;&nbsp;PayPal&nbsp;&raquo; de Google, Google Checkout (enfin une utilisation pour Google Checkout !)</li></ul><h3><a
name="Guidededveloppementlittraturep"></a>Guide de développement, littérature, premiers développements</h3><div
style="float:left; margin-right: 15px"> <a
href="http://developer.android.com"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/03/icon_contribute.jpg" alt="Android Developer" title="Android Developer" width="50" height="50" /></a></div><p>Android dispose d&#8217;un site dédié aux développeurs : <a
href="http://developer.android.com" title="http://developer.android.com" >http://developer.android.com</a>. Commencez par télécharger le SDK ici : <a
href="http://developer.android.com/sdk" title="httpdeveloperandroidcomsdk" >http://developer.android.com/sdk</a>, vous pourrez également télécharger le plugin Eclipse en suivant les indications données dans le guide d&#8217;installation du SDK.</p><p>Le site développeur vous propose également :</p><ul><li><a
href="http://developer.android.com/guide/tutorials/views/index.html" title="un guide de dveloppement" >un guide de développement</a></li><li><a
href="http://developer.android.com/reference/packages.html" title="la JavaDoc des APIs Android" >la JavaDoc des APIs Android</a></li><li><a
href="http://android-developers.blogspot.com/" title="le blog de dveloppeurs dAndroid" >le blog de développeurs d&#8217;Android</a></li><li><a
href="http://developer.android.com/community/index.html" title="les mailing lists Android" >les mailing lists Android</a>, hébergées sur Google Groups</li></ul><p>Le guide de développement est (évidemment) très bien écrit : vous y trouverez notamment <a
href="http://developer.android.com/guide/basics/what-is-android.html" title="une introduction à Android" >une introduction à Android</a> et le traditionnel <a
href="http://developer.android.com/guide/tutorials/hello-world.html" title="Hello, World" >Hello, World</a>. La partie <a
href="http://developer.android.com/guide/topics/fundamentals.html" title="Framework Topics" >Framework Topics</a> est complète et détaille les différents composants de la plateforme Android, mais est quelque peu indigeste. Si vous arrivez à manipuler <a
href="http://developer.android.com/guide/topics/intents/intents-filters.html" title="les Intents" >les Intents</a> à la seule lecture de la page qui les présente, félicitations ! Cette documentation manque d&#8217;exemples de code concrets. Le SDK et l&#8217;émulateur sont accompagnés <a
href="http://developer.android.com/guide/samples/index.html" title="dapplications exemples" >d&#8217;applications exemples</a>, mais cette fois-ci  ce sont les commentaires associés à ces exemples qui manquent.</p><div
style="float:right; margin-left: 15px"> <a
href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-Android-Application-Development.productCd-0470344717.html"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/03/professional_android_application_development.jpg" alt="Professional Android Application Development" title="Professional Android Application Development" width="97" height="126" /></a></div><p>Quelques <a
href="http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Daps&#038;field-keywords=android&#038;x=0&#038;y=0" title="livres dédiés à Android sont déjà disponibles" >livres dédiés à Android sont déjà disponibles</a>, nous vous recommandons fortement <a
href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-Android-Application-Development.productCd-0470344717.html" title="Professional Android Application Development" >Professional Android Application Development, par Reto Meier</a>, que nous avons lu, et qui vous permettra de monter en compétence sur la plateforme, grâce à de nombreux exemples de code concrets. Ce livre est un parfait complément au site <a
href="http://developer.android.com" title="dveloppeur dAndroid" >développeur d&#8217;Android</a>.</p><p>Enfin, un mot au sujet <a
href="http://developer.android.com/community/index.html" title="des listes de dveloppement" >des listes de développement</a>. Elles sont très actives, c&#8217;est un signe de bonne santé du projet et de la plateforme, mais elles le sont trop pour les suivre quotidiennement en s&#8217;y abonnant par email (plus d&#8217;une centaine de messages par jour). Vous pourrez en revanche facilement y trouver des informations par l&#8217;intermédiaire d&#8217;une recherche dans les groupes.<br
/> Si vous préférez le format &laquo;&nbsp;forum&nbsp;&raquo;, le <a
href="http://www.anddev.org" title="forum anddev.org" >forum anddev.org</a> est assez actif. Il n&#8217;y a pas encore de forum dédié à Android sur <a
href="http://www.developpez.net/forums" title="developpez.com" >developpez.com</a> (mais vous pouvez y trouver un <a
href="http://ydisanto.developpez.com/tutoriels/android/debuter/" title="tutoriel Hello World" >tutoriel Hello, World très bien fait</a>).</p><h3><a
name="LessitesddisAndroidsuivre"></a>Les sites dédiés à Android à suivre</h3><p>Enfin, voici une liste de sites qui vous permettront de suivre de près l&#8217;actualité de la communauté Android : sortie des nouveaux téléphones, de nouvelles applications dans Android Market, ou articles sur le développement d&#8217;applications Android.</p><p>Sites Français :</p><ul><li><a
href="http://www.frandroid.com" title="Frandroid" >Frandroid</a></li><li><a
href="http://www.pointgphone.com" title="PointGPhone" >PointGPhone</a></li></ul><p>Sites Anglais :</p><ul><li>le <a
href="http://android-developers.blogspot.com" title="blog officiel de lquipe de dveloppement dAndroid" >blog officiel de l&#8217;équipe de développement d&#8217;Android</a></li><li>le très complet <a
href="http://androidguys.com/" title="AndroidGuys" >AndroidGuys</a></li><li><a
href="http://www.planetandroid.com" title="PlanetAndroid" >PlanetAndroid</a>, agrégateur de blogs Android</li><li><a
href="http://www.anddev.org" title="le forum anddev" >le forum anddev</a></li></ul><p>J&#8217;y parle régulièrement d&#8217;Android, vous pouvez me suivre sur Twitter en cliquant-ici :</p><div
align="center"> <a
href="http://twitter.com/gcarre"><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png" alt="twitter guillaume carré" title="twitter guillaume carré"  /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/03/26/premiers-pas-dans-android/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Présentation Android, et vous quelle technologie mobile préférez-vous ?</title><link>http://blog.xebia.fr/2009/03/25/presentation-android-et-vous-quelle-technologie-mobile-preferez-vous/</link> <comments>http://blog.xebia.fr/2009/03/25/presentation-android-et-vous-quelle-technologie-mobile-preferez-vous/#comments</comments> <pubDate>Wed, 25 Mar 2009 07:02:21 +0000</pubDate> <dc:creator>Erwan Alliaume</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Mobilité]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Sondage]]></category> <category><![CDATA[XKE]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1646</guid> <description><![CDATA[Android sera probablement l&#8217;une des nouvelles technologies phares de l&#8217;année 2009. Si les premiers Google Phone fonctionnant sous ce système d&#8217;exploitation mobile commencent tout juste à arriver en France, de nombreux constructeurs annoncent déjà être intéressé par cette technologie. Ainsi, outre les nombreux modèles de téléphones prévus, d&#8217;autres types de machines devraient également voir le [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://developer.android.com" title="Android" >Android</a> sera probablement l&#8217;une des nouvelles technologies phares de l&#8217;année 2009. Si les premiers <em>Google Phone</em> fonctionnant sous ce système d&#8217;exploitation mobile commencent tout juste à arriver en France, de nombreux constructeurs annoncent déjà être intéressé par cette technologie. Ainsi, outre les nombreux modèles de téléphones prévus, d&#8217;autres types de machines devraient également voir le jour (<a
href=" http://www.earthtimes.org/articles/show/archos-combines-its-multimedia-framework,709315.shtml" title="Archos" >Archos</a>,  et peut-être même un <a
href=" http://venturebeat.com/2009/01/01/android-netbooks-on-their-way-likely-by-2010/" title="EEEPC" >EEEPC</a>).</p><p>Lors de notre dernier <a
href="http://blog.xebia.fr/tag/xke/" title="XKE" >XKE</a> (Xebia Knowledge Exchange), nous lancions, <em>attention teasing</em>, un concours de développement interne sur les nouvelles technologies mobiles, concours dans lequel Android a évidemment sa place. Avant de vous présenter les résultats de ce concours (que nous publierons prochainement), il nous semble intéressant de recueillir <em>a priori</em> votre opinion sur le sujet.</p><p>Nous lançons donc ce sondage : <strong>Développeurs, initiés, quelle technologie préférez-vous pour le développement sur mobile ?</strong></p><p>N&#8217;hésitez pas à nous faire part des raisons de votre choix dans les commentaires.</p><div
align="center"> <script type="text/javascript" charset="utf-8" language="javascript" src="http://static.polldaddy.com/p/1483912.js"></script><br
/> <noscript><br
/> <a
href ="http://answers.polldaddy.com/poll/1483912/" >Quelle technologie mobile préférez-vous ?</a><br
/> </noscript></div><p>D&#8217;autre part, comme cela n&#8217;a que très peu de risque de biaiser le sondage, profitons de cet article pour partager le contenu de la petite présentation Android effectuée en interne à Xebia lors de notre dernier XKE.</p><div
style="text-align:center" id="__ss_270612"> <object
style="width:700px;margin:0px" width="650" height="542"><param
name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=xke-20090305-android-090322155205-phpapp02&#038;stripped_title=android-overview-1181344"/><param
name="allowFullScreen" value="true"/><param
name="allowScriptAccess" value="always"/><embed
src="http://static.slideshare.net/swf/ssplayer2.swf?doc=xke-20090305-android-090322155205-phpapp02&#038;stripped_title=android-overview-1181344" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="650" height="542"></embed></object></p><div
style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;text-align:center;" > <a
href="http://www.slideshare.net/?src=embed"><br
/> <img
src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a><br
/> <a
href='http://blog.xebia.fr/wp-content/uploads/2009/03/xke-20090305-android.pdf' title='2009-03-24_xebia_erwanalliaume_android.pdf'><br
/> <img
src='http://blog.xebia.fr/wp-content/uploads/2008/02/pdf.miniature.jpg' height="20" border="0" alt="Android Presentation Xebia" /> T&eacute;l&eacute;charger en PDF</a></div></p></div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><p></p><div
align="center"> <a
href="http://twitter.com/ealliaume" ><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/04/twitter4.png"  alt="twitter erwan alliaume" title="twitter erwan alliaume" border="0" /><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/03/25/presentation-android-et-vous-quelle-technologie-mobile-preferez-vous/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
