Retour sur Devoxx Devoxx, c est la plus grosse conférence de développeurs Java en Europe qui existe depuis 2002 (auparavant connue sous le nom de Javapolis). Elle se déroule tous les ans à Anvers (Belgique) en Novembre. Devoxx France c est l édition française de cette conférence avec principalement des conférences en Français qui a eu lieu pour la première fois en Avril 2012 à Paris. Devoxx, c est 3 jours de conférences, 133 sessions sur différents formats (ateliers, conférences, quickies, tables rondes), 199 présentateurs de différents horizons francophones et anglophones, 1250 participants (Pour l anecdote, les organisateurs avaient prévu 450 participants au départ). Une conférence très dense! Les sessions sont découpées en quatre thématiques : Web, mobile et Cloud : HTML 5, Android, Langages alternatifs : Groovy, Scala mais également Ceylon, Kotlin Entreprise et pratique : Devops, Kankan, Agilite, Scrum Java EE et architectures : Frameworks, Java 8, Guava, optimisations, architectures Quasiment exclusivement sur le monde Java et ce qui gravite autour. Les tendances Les tendances qui s en dégagent sont bien expliquées dans le Talk de Patrick Chanezon. Il explique que nous sommes actuellement dans une phase de transition, une évolution comme on en voit tous les 10-15 ans dans le monde de l informatique. Les années 70 ont vu apparaitre les client/serveur dans lequel le serveur effectue l intégralité du traitement métier et le client reste passif et ne fait que le rendu de l affichage. Dans les années 80-90, le client lourd se met en place. Le serveur effectue une partie du traitement métier, mais l intelligence est déléguée au client. Avec l avènement du Web dans les années 2000, l intelligence a été re-centralisée auprès du serveur. Les applications Web se développent. Le navigateur Web jour le rôle du terminal passif des années 70 : il ne délègue que l affichage. 1
Petit à petit, cet affichage va se complexifier et s enrichir. Les applications Web reprennent de l intelligence. La mobilité prend de l ampleur, les applications multiplateformes débarquent pour répondre aux besoins des utilisateurs de plus en plus nomades. Dans les années 2010, on tend à revenir petit à petit au mode client «lourd» des années 90. Nous sommes dans une phase de transition et pour répondre à ces besoins, trois tendances se dégagent : Le Cloud, qui va permettre de répondre rapidement aux demandes des utilisateurs en mettant en place des infrastructures facilement scalables. (On parle de scalabilité horizontale qui facilite le clustering et la distribution). HTML 5 qui propose de combler les lacunes des navigateurs actuels en proposant des applications plus riches (audio, vidéo, stockage local) La Mobilité : les applications mobiles peuvent être vues comme les applications client lourd des années 90 Pour cette présentation, nous nous concentrons sur HTML5 et la mobilité. HTML 5 Une très bonne présentation d Habib Guergachi nous explique les principes des architectures Orientées Web (WOA : Web Oriented Architecture). Le serveur met à disposition les ressources qui sont accessibles au navigateur avec des appels de service REST. La partie cliente reprend donc de l intelligence, notamment pour les aspects Controller / View (en référence au Design pattern MVC). L idée est de développer des applications seulement avec les standards du Web. On met en avant les applications mono-pages (SPA : Single Page Application) on supprime les temps de chargement et de rendu des pages en proposant une page unique pour l application qui va se modifier selon les besoins (modification dynamique du DOM). Ce principe est également possible grâce à l utilisation des Websockets (communication bidirectionnelle) permettant de limiter les flux client-serveur et des WebWorkers permettant de faciliter les traitements en parallèle. HTML 5 est également implémenté par les navigateurs des terminaux mobiles et il est primordial de prendre en compte les pertes de connectivité. (L utilisateur veut toujours pouvoir utiliser son application, même s il passe sous un tunnel). Le stockage local permet de répondre à ces besoins. Exemples d application SPA Gmail est un exemple d application web monopage. Les liens ne rechargent pas la page mais le contenu est modifié au fur et à mesure selon les requêtes. Un autre exemple de SPA et de Websocket : la recherche en saisie automatique sous Google qui modifie le contenu en dynamique. 2
Le développement de CSS 3 conjointement à HTML 5, permet d améliorer l interface utilisateur et de déléguer les aspects graphiques quasiment entièrement à la feuille de style. Les media queries permettent de faciliter la prise en compte des différents modes d accès (par exemple : portable ou tablet PC? orientation portrait ou paysage?) Pour HTML 5, le développeur devra prendre en compte HTML (le langage), mais également CSS3 et surtout Javascript. Quelques frameworks et outils JavaScript pour débuter : jquery, Dojo Sencha Touch, jqtouch, Jo (mobile) Backbone, Spine (MVC) Modernizr (compatibilité cross-navigateur) Weinre (debugger JS mobile) RedBot (gestion du cache), JSLint (validation) et des centaines d'autres. Expérimentez vous-même les possibilités sur les sites Html5rocks.com, ChromeExperiments.com, Html5Laboratory.com ou encore Html5gallery.com Mobilité L autre grosse tendance de Devoxx, c est la mobilité et plus précisément son arrivée dans le monde de l entreprise. Les utilisateurs sont de plus en plus nomades et toujours plus friands de nouveaux services. Les entreprises sont souvent en retard pour proposer aux utilisateurs leurs services. Elles se font parfois pousser par les développeurs indépendants qui proposent des services non officiels. Anecdote L application Naoned Bus a été distribuée par 2 développeurs indépendants bien avant que la TAN ne propose son application mobile officielle. Cas d exemple MAIF : GeoSecurisation La MAIF a mis récemment à disposition à ces clients l application «GeoSecurisation» qui leur permet d être secouru et assisté en cas d urgence. 3
Les entreprises adoptent donc les plateformes mobiles pour les clients mais également pour leurs besoins métier interne. Cas d exemple SNCF : SUIMAGARE Une application de gestion de site permettant de suivre les équipements en gare grâce à des codes QR apposés sur les équipements (ascenseurs, distributeurs de billets, etc.). Ces codes sont scannés par les agents en gare (grâce à leur mobile) qui leur permet de remonter plus rapidement les équipements défectueux et ainsi assurer une meilleure qualité de service. Une des grosses problématiques pour le développement d applications mobiles va être de gérer : la multitude de plateformes : iphone, Android, WindowsPhone, ipad, tablet PC qui proposent des performances, des résolutions et des densités de pixel différentes. La multitude d OS : On parle principalement d Android, d ios mais il ne faut pas oublier les Windows phone, Blackberry. Et chaque OS est disponible dans différentes versions. Les entreprises sont face cette fragmentation du marché. Elles ont deux alternatives : Cibler un marché le plus large possible mais donner moins de fonctionnalités à leurs applications? Cibler le cœur du marché (toucher moins de personnes) mais proposer une expérience maximale pour leurs applications? Face à ces problématiques, 3 solutions. Les applications Natives C'est-à-dire un exécutable développé spécifiquement la plateforme ciblée : Développement Java pour Android, Objective C pour ios. Avantages Interface utilisateur (UI), expérience utilisateur (UX) adapté : on tire profit du comportement natif du mobile. On tire parti de toutes les possibilités techniques de l appareil. Distribution simplifiée : Le développeur ouvre un compte Developer Apple Store, donne un prix de vente et Apple le met à disposition. Pour le développeur, il n ya pas d infrastructure à mettre ne place, pas de pub non plus. La mise à disposition sur le market offre une visibilité accrue Inconvénients Un développement par plateforme ciblé Où trouver des développeurs Java ET Objective C? Coûts doublés!! 4
Les applications Html 5 Une alternative à cette première solution c est HTML 5. On a vu précédemment que HTML 5 est de plus en plus riche. Beaucoup de Smartphones possèdent un navigateur Web compatible qui est capable d exécuter HTML 5. Avantages Inconvénients On utilise un seul langage, quelque soit la plateforme On va cibler une population très large puisqu on est multiplateformes visibilité réduite puisqu on devra mettre ne place son infrastructure pour la mise à disposition de l application. manque d API, UI et UX moins spécifique. Les applications hybrides Une alternative à ces 2 solutions est de mixer les deux en proposant ce qu on appelle des applications hybrides. Une application hybride c est quoi? Le cœur de l application est codé en HTML 5/JS On embarque l application HTML 5 dans une application native grâce aux composants WebView proposés par les SDK. On utilise un Framework qui va servir de glue technique entre le code JS métier et les spécificités de la plateforme (qui va nous permettre d accéder à la caméra par exemple) On va donc retrouver les avantages des applications natives et HTML 5 mais on reste sur des fonctionnalités dégradées par rapport à du natif. Les frameworks hybrides à suivre de près : Apache Cordova (ex Phonegap) et Appcelerator Titanium. Vers quelle solution s orienter? La solution hybride semble un bon compromis, celle qui séduit le plus. Mais lors de Devoxx je n ai pas ressenti de consensus sur la réponse. La question a été posée à plusieurs présentateurs (certains mettant en avant HTML, d autres des appli natives) mais il n y a pas de réponse tranchée. En réalité, la solution dépend avant tout des priorités : budget, cible du marché ou expérience utilisateur. 5
Et Sodifrance dans tout ça? Une des idées envisageables, pour recentrer par rapport aux compétences Sodifrance serait de «générer du code pour les plateformes mobiles». On pourrait imaginer concevoir des applications d un point de vue fonctionnel (abstrait de la plateforme technique) puis générer des applications natives soit vers Android, soit vers ios. Cette approche permettrait de générer une grande partie du code, limitant ainsi les coûts de développement et serait une première étape vers l industrialisation des applications mobiles en entreprise. Les autres sujets Devoxx, c'était également : Le Cloud Les langages alternatifs : Groovy, Scala, Ceylon, Kotlin... Agilité & Entreprise : kanban, DevOps, etc. Lors de prochains de prochains Ateliers 6 à Sept par Florent Dupont Collaborateur Sodifrance depuis 2006, je suis actuellement en mission à la DSI SNCF (Nantes). Je travaille principalement sur le MDA et l architecture logicielle. 6
Questions / Réponses En fonction des nouvelles tendances, quel effort est nécessaire pour Sodifrance (formation, embauche, partenaire ) et comment être différenciant? Le Cloud, à mon avis, est hors sujet pour Sodifrance en tant que SSII car c est plutôt une problématique «client», grands comptes ou startup qui ont des besoins de mettre en place des infrastructures scalables rapidement. HTML 5, semble l évolution naturelle des clients légers actuels et donc des compétences que peuvent acquérir facilement les collaborateurs ayant un profil Java / JEE. Concernant la mobilité, on est dans une philosophie différente. Le développement d applications mobiles se rapproche plus du développement sur systèmes embarqués avec des contraintes fortes sur la consommation mémoire, la taille des applications, les ressources utilisées. On a globalement deux mondes : Android et ios. Pour Android, on reste dans le monde Java donc le gap est moins important, mais sous ios, on passe en développement sous Mac en Objective C. Cela a des impacts sur les compétences des développeurs (formations spécifiques à prévoir), mais également sur les environnements de développement (coût des environnements). Le point sur lequel Sodifrance pourrait être différenciant, c est la valeur ajoutée que pourrait avoir un générateur de code pour industrialiser les développements d applications mobiles. Sodifrance a une forte expérience dans la génération de code et pourrait être différenciant sur les coûts de développement par rapport à d autres SSII. 7