J’ai eu la chance cette année d’assister aux journées conférences de la 11ème édition de Devoxx à Anvers. L’événement s’est déroulé du 12 au 16 Novembre et plusieurs nouveautés techniques étaient au rendez-vous.
Keynote
La première journée de conférence a commencé par une keynote très « robotique »: on a assisté à une chorégraphie de cinq robots Nao, magnifiquement synchronisé.
Ensuite, Stephan Janssen nous a présenté un reportage sur l’événement Devoxx4Kids mis en place le BeJUG. Devoxx4Kids a eu lieu le 13 et le 20 Octobre dernier et a permis à des adolescents entre 10 et 14 ans de découvrir des Lego Mindstorm, des simulations d’une mission d’exploration sur Mars, NAO, Scratch. Cette initiative a pour objectif de sensibiliser les enfants au monde du développement informatique.Vous pouvez consulter les photos de l’événement.
Cette première édition était couronnée de succès et sera rééditée à la deuxième édition de Devoxx France 2013 qui se tiendra du 27 au 29 Mars 2013.
Nandini Ramani, la vise-présente du pôle développement chez Oracle a présenté les nouveautés de JDK8, suivi de Jasper Potts, un architecte chez Oracle qui nous a fait découvrir une tablette présente dans les locaux des conférences, mise en place par un simple microprocesseur, un écran tactile et du Java.
Après une entrée fanfaronne sur scène en moto, Stephen Chin, l’ambassadeur de Java chez Oracle, a présenté son NightHacking tour qu’il a réalisé en Europe.
La keynote se terminait par une présentation de Neal Ford intitulé “When Geeks Leaks” ou il a expliqué les problématiques liés à une architecture logicielle ou à une méthodologie de développement.
J’ai suivi la présentation de Mike West, développeur de la l’équipe Google Chrome de Munich, qui a parlé de la sécurité des applications web côté client assuré par HTML5.
Mike West a insisté sur la première règle de sécurité qui est l’utilisation obligatoire de HTTPS. Avec la nouvelle entête HTTP, il est possible de faire des redirections automatique vers HTTTPS grâce à l’attribut strict-transport-security .
Il a expliqué le mécanisme de l’attaque cross scripting ou XSS : il s’agit de la possibilité d’injection de code (html, javascript, css…) dans la page html afin d’avoir accès aux diverses informations côté client tel que les cookies par exemple.
Il a ensuite présenté la solution de sécurité basé sur ContentSecurityPolicy qui en cours de validation pour devenir un standrad HTML5. Il s’agir de la spécification des seules sources qui seront utilisées par l’application web: Lire la suite »
Dans ce 5ème épisode du podcast Fréquence Valtech, Eric Le Merdy interviewe Frédéric Fallière et Grégory Paul pour un tour d’horizon des technologies HTML5, CSS3 et les nouvelles API JavaScript.
Vous pouvez télécharger ce podcast au format ogg ou mp3 ou encore vous abonner via le flux rss dédié.
Voici les ressources évoquées pendant le podcast :
HTML5 Boilerplate, une structure de base avec les bonnes pratiques HTML5,
la librairie Modernizr permettant la détection du support de ces fonctionnalités et la possibilité de charger un polyfill pour la prendre en charge si elle est non disponible (je vous invite à regarder la présentation des polyfill de Lea Verou donnée à la dernière JsConf.eu).
N’hésitez pas à nous faire part de vos retours par email à l’adresse <podcast-at-valtech.fr> ou alors via les commentaires ci-dessous.
Avec la croissance fulgurante ( à 3 chiffres annuel ) des ventes aussi bien sur iPhone que sur Android, les demandes en application mobile natives sont fortes.
Le développement natif a l’avantage d’ une interface utilisateur fluide. Néanmoins la montée en compétence exige au moins quelques mois d’expérience pour des projets relativement courts (en semaines ). Chaque plateforme est spécifique, une expérience sur iPhone n’est pas forcément transférable sur Android et vice versa.
L’ idéal pour le développement multi-plateforme reste l’HTML5 rendu sur le navigateur de l’OS : webkit pour iOS et Android, Firefox pour Meego, Internet Explorer Mobile pour Windows Phone 7. HTML5 reste une solution universelle pour le front-end . Les coûts sont factorisés par le nombre d’OS ciblé.
Il existe des solutions multi plateforme tel que PhoneGap, App Titanium qui mimiquent l’interface utilisateur natif . A la différence de ces outils , ce tutorial vous laisse libre sur le choix de votre librairie JavaScript. Les librairies utilisées sont iUI Project de Joe Hewitt , iWebKit de Jonathan Stark , JQTouch de David Kaneda .
Tutorial
Ce tutorial expose comment utiliser un “wrapper” de l’HTML5 sur Android. En d’autres termes , ce projet embarque de l’ HTML5 dans une application Android .
Commencez un nouveau projet Android sous Eclipse à partir d’android 2.0 ( SDK API >=5 ). Vous disposez déjà d’une application web qui tourne sans serveur. Déposez le dans le répertoire “assets” , c’est ici où tout le site web se trouve avec ses références JavaScript, CSS …
Créez un nouveau layout “main” où on va introduire une webview . Le layout réprésente la view dans le modèle MVC . Cette webview sera la fenêtre d’entrée pour notre application HTML5 .
Dans le code source , créez une classe NaviRay qui hérite d’ Activity . Si vous n’êtes pas familier avec la notion d’activity, je vous recommande de comprendre son cycle de vie .
La méthode onCreate initialise le layout “main” . La webview pointe dans le dossier assets vers la page index.html
publicclass NaviRay extends Activity{private WebView browser;/** Called when the activity is first created. */
@Override
publicvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.main);
browser =(WebView) findViewById(R.id.webview);
browser.getSettings().setJavaScriptEnabled(true);
browser.loadUrl("file:///android_asset/index.html");}}
Dans le manifest , rajoutez la permission android.permission.INTERNET
Ca y est, on peut maintenant accéder à notre site web en local.
Options
Cette application ne comporte qu’une seule Activity . Dans le code source , la gestion de l’historique du bouton “back” et le menu sont inclus .
Appels natifs
L’une des restrictions de l’HTML est sans aucun doute l ‘ impossibilité d’utiliser des fonctions natives (GPS , accélèromètre , contacts … ) . Quoi que on peut toujours appeler.
Sans utiliser d’intent , il est possible de passer un appel téléphonique ou d’envoyer des SMS juste avec de l’HTML ( testé sous iPhone et Android )
Pour téléphoner vers
<ahref="tel:33-123-456-7891">
Pour envoyer un SMS
<ahref="sms:12345678">
Pour envoyer un email
<ahref="mailto:ray@ray.com?cc=ex@x.com,lisa@x.com&subject=Sujet HTML5 sur Android!&body=Je viens de tester!">
Vous pouvez utiliser à différentes expérimentations, il ne reste plus qu’à modifier le contenu du dossier “assets”.
Si vous publiez une application à partir de ce source, merci de modifier le nom de package Java. En effet le package sert d’identifiant pour une application publiée sur l’Android market.
Pour celles et ceux qui n’ont pas la chance d’assister aux ValtechDays, les ValtechDays viennent à vous à travers cette présentation interactive “Le web a-t-il besoin du HTML5” que vous trouverez à l’adresse suivante : http://valte.ch
Cette démo technologique est à visualiser avec des navigateurs modernes, tels que Chrome, Safari 5, Firefox 4, iPhone, iPad ou votre téléphone ou tablette Android.
Cette démonstration vous permettra de voir le support actuel de ces technologies d’avant-garde sur votre propre navigateur.
Valtech était à Devoxx 2010, une longue semaine de travail et de discussion et un retour d’Anvers fatiguée mais bourrée d’idées.
Tout d’abord félicitations à Stephen Janssen et à l’équipe de Devoxx : un cinéma avec des fauteuils confortables, une logistique pour 3 000 personnes, des conférences intéressantes sur des sujets variés et la retransmission sur Parleys pour que ceux qui n’ont pas fait le déplacement puisse profiter des meilleures présentations.
Devoxx 2010, c’est un programme quotidien très chargé (5 jours de 9h30 à 22h pour les plus assidus et jusqu’à 6 salles en parallèles) donc énormément de sujets et je ne reviendrai pas sur tout en détail.
C’est aussi beaucoup de discussions entre les sessions et plus tard en soirée sur les langages, notre métier et diverses choses qui font que des réseaux se forment.
Que contenait la fournée 2010 ?
D’abord les annonces officielles d’Oracle sur Java EE 6 et Java SE 7 ainsi que sur le devenir d’Open JDK. Open JDK restera et Java sera plus simple, plus pratique et plus facile à utiliser. Plusieurs présentations JPA/Hibernate viennent compléter ce tableau. Les évolutions les plus attractives de Java SE comme le projet Lambda (langage fonctionnel) ou le projet Jigsaw (modularité et gestion des dépendances) sont reportés à Java SE 8. La vie semble reprendre après une période difficile.
Un gros thème NoSql cette année, même si ça n’est pas strictement du Java. Cloudera (Hadoop, HBase), Cassandra, MongoDB, Infinitest et plusieurs grands site Web utilisateurs de bases NoSql avaient fait le déplacement. Des présentations assez inégales mais qui donnaient l’opportunité aux développeurs Java de découvrir cet univers. Dans ce thème aussi une présentation très intéressante des fondamentaux du cache distribué et Ehcache The essence of Caching.
Autre gros thème cette années, les interfaces utilisateur avec des sujets sur Android, HTML5 et Flex avec la même préoccupation qui revient constamment “On n’est pas obligé de faire des IHM moches avec Java”. Une très belle présentation de Romain Guy et Chet Haas Dive into Android avec du code en live et des explications sur le graphisme avec Android.
Bien sûr quelques sujets sur les fondamentaux Java sur les bonnes pratiques du développeur, avec un zeste de Cloud cette année? J’ai un peu zappé car d’autres sujets mon plus intéressé mais j’ai un peu regretté de n’avoir pu accéder à aucune des présentations de Joshua Bloch (Effective Java, Java Puzzle), trop de monde à chaque fois. Un peu de Scala et de Groovy/Grails mais les langages n’étaient pas très représentés.
Dans les présentations plus processus une mention spéciale pour From Dev/Ops to DevOps. Amazing the difference one character can make (en photo). DevOps est un mouvement émergeant qui vise à rapprocher les équipes de développement et les opérations (la production en français) pour mieux résoudre les problèmes de déploiement et de suivi de production. Le sujet avait aussi été abordé au CITCON en relation avec le Continuous Deployment (aussi présent à Devoxx mais on doit faire des choix vu le nombre de sujets et je ne l’ai pas vue). On en reparlera !
Et pour finir un peu d’humour les derniers jours avec les enregistrements Live des podcasts Java Posse et Les Cast Codeurs.
On attend avec impatience l’édition 2011, mais en attendant voilà des dizaines de pistes à explorer avant l’années prochaine.