Blog

Android 4.4 KitKat

Alors que l’on attendait une version 5 d’Android, Google a surpris tout le monde en annonçant une version 4.4, qualifiée donc de « version mineure ». Mineure car elle apporte peu de changement « visible » pour le grand public et est donc plus difficile à « marketer ». Pourtant sous le capot, on constate un grand nombre d’évolutions importantes que je vais tenter de vous résumer dans cet article.

NFC : Host Card Emulation

Jusqu’à la version 4.3, le support NFC sur les téléphones Android est limité à une fonction de lecture de tags NFC. Ceci permet par exemple de déclencher des actions sur le téléphone en l’approchant d’un tag NFC.

Nous avons d’ailleurs réalisé plusieurs POC à ce sujet avec un grand groupe pharmaceutique français qui étudie actuellement la mise en place de tags NFC dans ses emballages.

Avec KitKat, il sera désormais possible d’émuler un tag NFC avec son téléphone. Cette nouvelle capacité va permettre de dématérialiser un grand nombre de cartes que nous possédons tous : carte de fidélité, carte de transport, et pourquoi pas à terme carte de paiement… Il suffira alors de rapprocher son téléphone NFC d’un lecteur, au lieu de fouiller dans son portefeuille.

Quand on voit le succès rencontré par Passbook qui permet de regrouper des cartes, des tickets, des bons de réduction avec une technologie de code barres ou qrcode, on peut imaginer ce que sera demain l’engouement du « sans-contact ».

Low-power Sensors

Android KitKat introduit un nouveau mode de gestion des capteurs du téléphone (accéléromètre, détecteur de positions, de pression, température etc..) : les événements peuvent désormais être traités par lots, on parle de « sensor batching ». En fonction des besoins, les applications peuvent être notifiées à un intervalle choisi avec un ensemble de données provenant des capteurs. Jusqu’à présent, chaque événement devait être traité par les applications d’une manière unitaire.

Cerise sur le gâteau, cette optimisation est faite au niveau hardware. Concrètement cela veut dire que les applications pourront continuer à « tracker » les événements des différents capteurs même lorsque le téléphone est éteint ou en veille, ce qui a pour effet de réduire drastiquement la consommation de batterie. (ex : une application de randonnée qui enregistre le trajet n’a plus besoin d’être active pendant la randonnée, il suffira de traiter à posteriori les données de position à la fin du parcours.)

Cette fonctionnalité, combinée à de nouvelles puces permettant de détecter les pas, vient se placer en concurrence directe des dispositifs embarqués (ex: les podomètres dans les chaussures.)

Évolution de la WebView

La WebView bénéficie enfin du même moteur que Chrome Android : Chromium ! Une bonne nouvelle qui devrait sans conteste améliorer les performances des applications dites « hybrides » qui embarquent une WebView pour gérer la partie vue.

Ce changement amène un meilleur support des standard HTML5, CSS3 et Javascript avec notamment le support attendu des websockets et des web workers.

Enfin, une nouveauté et non des moindres, est que l’on peut debugger une WebView directement dans Chrome sur le poste du développeur via les Chrome Developer Tools.

Un “vrai” plein écran : Immersive mode

Depuis KitKat les applications peuvent profiter du moindre pixel disponible avec un vrai mode plein écran. Il est désormais possible de cacher entièrement et de façon permanente la « status bar » et la « navigation bar ». Précédemment, cacher la navigation bar n’était possible que jusqu’à ce que l’utilisateur touche l’écran. (utilisé notamment dans les players video).

Dans ce nouveau mode, les applications peuvent capturer les événements de « touch » n’importe où sur l’écran, y compris sur les emplacements habituels des barres. Pour faire réapparaître les barres (qui sont en partie transparentes dans ce mode) par dessus le contenu, un nouveau geste a été introduit :  un swipe de haut en bas en partant de l’extérieur du téléphone.

Préparer l’avenir

Les ingénieurs Google prépare l’avenir en proposant une preview de ce que pourrait être la nouvelle machine virtuelle qui sera amenée à remplacer Dalvik : ART (Android Runtime)
Alors qu’aujourd’hui le bytecode des applications est transformé en instructions natives à chacune de leurs exécutions (via un compilateur Just-In-Time), avec ART il est pré-compilé une bonne fois pour toute à l’installation (on parle de compilation Ahed-Of-Time).

Au prix d’un temps d’installation plus long, et d’un poids des applications de 10 à 20% plus lourd, il est donc possible d’améliorer les performances à l’exécution tout en économisant de la batterie.

Il est d’ors et déjà possible d’activer ART dans les “Options pour les développeurs” et les retours sont dans l’ensemble assez prometteurs.

Google travaillerait en secret sur ce projet depuis plus de 2 ans, certains avancent même que les poursuites d’Oracle à propos de brevets portant sur la machine virtuelle Dalvik pourraient avoir menées à l’émergence de ce projet.

Un seul mot d’ordre : performance

Un gros travail d’optimisation a eu lieu pour réduire l’utilisation de la mémoire et permettre à des devices peu puissants (512MB de RAM) de faire tourner KitKat. De nouvelles APIs sont désormais disponibles pour détecter ce genre de device (ActivityManager.isLowRamDevice).

Les composants majeurs ont été réécris, le système est plus agressif envers les applications qui consomment le plus, les services sont lancés en petit groupe et en série si le besoin s’en fait sentir.

On peut donc espérer de la part des constructeurs de téléphone, ou à défaut de la communauté, un déploiement de KitKat sur un plus large panel de device que les versions précédentes.

Pour le développeur, cela veut dire qu’il est de plus en plus primordial de s’orienter vers une approche « responsive » des applications, non seulement au niveau de l’affichage (tablette vs téléphone) mais surtout aussi au niveau de leurs fonctionnements et de leurs possibilités.
Ceci afin de tendre vers le but suprême : proposer des applications responsives, fluides et adaptées quelque soit le matériel sur lequel elle sont déployées.

DocDoku fait peau neuve

DocDoku s’est refait une petite beauté avec un nouveau logo et un nouveau site web en responsive design.

Atelier Web Marketing – Les nouvelles stratégies Web Marketing

J’ai participé à la conférence Email Marketing & Référencement, organisée conjointement par Dolist, spécialiste de l’e-mail marketing, et CyberCité, expert du référencement. Cet événement s’est déroulé le 9 juillet à la Cantine. (Toulouse)

visuel-dolist

J’ai pu voir l’importance de l’e-mail marketing pour les techniques d’acquisition, de conversion et de fidélisation des contacts dans une organisation.

Voici un aperçu des pratiques à succès de l’e-mail marketing et des tendances pour 2013 selon Jean Paul Lieux (Directeur associé de Dolist) :

  • Profitez de votre audience en ligne (Site web, blogs, réseaux sociaux) pour transformer un maximum de visiteurs en contacts adressables
  • Préoccupez-vous avant tout de la qualité de votre base de données, en intégrant des dispositifs de vérification : double saisie, captcha…
  • Optimisez la consultation de vos messages sur tous les supports mobiles, car aujourd’hui 47% des internautes lisent leurs mails depuis un terminal mobile.
  • Surveillez les désabonnements et les plaintes de vos abonnés pour éviter que vos messages arrivent en boîte indésirable ou secondaire.

L’e-mail marketing a fortement évolué : nous sommes désormais au début d’une communication ultra ciblée, personnalisée et de plus en plus automatisée.

Web 3D 2013

Cette année nous étions invités par Christophe Mouton, expert PLM chez EDF, à participer à la fameuse conférence web 3D. Après Las Vegas en 2012, l’édition 2013 se déroulait en Espagne à San Sebastian au Miramar Palace. Le cadre était donc vraiment très agréable, seul le temps, comme en témoigne la photo ci-dessous, n’était pas au beau fixe.

image

En plus de la rédaction d’un poster, j’ai pu présenter pendant près de 40mn un cas d’usage de notre solution DocDokuPLM. « Web 3D » oblige j’ai concentré mon discours sur la partie visualisation 3D de la maquette numérique. J’ai notamment expliqué les nombreuses optimisations que nous avons faites pour s’affranchir des limites intrinsèques des moteurs JavaScript des navigateurs.

Par exemple Chrome ne pouvant allouer plus de 1,4 Go de mémoire, nous devons enlever de la scène les objets non visibles dans le champ de la caméra. Nous avons également implémenté un système de type LOD (Level Of Detail) où chaque pièce d’un assemblage existe en différentes qualités de représentation, plus l’objet étant proche de la caméra meilleur sera son affichage.

Par ailleurs, j’ai moi même assisté à quelques belles sessions, notamment une sur le format XML3D concurrent du X3DOM qui par son héritage de X3D et VRML traine les lacunes inévitables de toutes technologies legacy. XML3D, conçu lui à partir de la feuille blanche, entend devenir le standard pour la 3D déclarative du web. Enfin, j’ai bien apprécié la démonstration de réalité augmentée s’appuyant sur WebRTC, domaine très prometteur que nous explorons déjà !

Solutions Linux 2013

Le salon Solutions Linux 2013 vient tout juste de s’achever, j’en profite donc pour faire un retour à chaud de cet évènement majeur de la communauté open source française.
Cette année, la superficie allouée au salon a quelque peu réduit et la manifestation ne s’étale plus que sur 2 jours au lieu des 3 jadis. Toutefois, c’est finalement un mal pour un bien car du coup les rencontres de qualité s’enchainent à un rythme soutenu.
PHP - Drupal

Si la dénomination est restée la même depuis les toutes premières éditions, le lien avec linux n’est pas exclusif. Aujourd’hui les exposants présentent majoritairement, comme nous, des solutions métier. Cela va de la business intelligence à l’ERP en passant par les CMS et bien sûr le PLM !

A côté des stands des entreprises, comme d’habitude, se trouvait le village associatif. Ce genre de salon est l’occasion d’entrer en contact avec de futurs prospects, de rencontrer des clients (j’ai longuement conversé avec un responsable de l’afpa), des partenaires et confrères ; j’ai notamment discuté avec Gaël d’Obeo et l’équipe de BlueMind.

Côté échange, j’ai eu le plaisir de participer à la série de présentations d’OW2 et à une interview Plateau TV orchestrée par Philippe Scoffoni. En parlant d’OW2 d’ailleurs, la traditionnelle Wine & Cheese Party est toujours aussi réussie, félicitation à Catherine pour son organisation.

Enfin, comment ne pas finir ma rétrospective avec un moment assez cocasse où un concurrent que j’avais démasqué (éditeur propriétaire faisant plus de cent millions d’euros de chiffre d’affaire) est venu s’enquérir de notre logiciel, indubitablement impressionné par les performances et la richesse fonctionnelle. L’open source est un concept étrange pour la plupart des éditeurs PLM qui sont extrêmement fermés et verrouillent au maximum, au détriment de l’intérêt de leurs clients, les données de leurs logiciels.

Nous, au contraire, nous travaillons dans la transparence, notre seule obsession est la qualité de nos logiciels sans aucune stratégie de lock-in. Tout le monde a accès au code source, y compris ce concurrent, et peut l’utiliser librement en respectant le copyright et la licence AGPL.

 

Formation développement d’applications Android professionnelles – session du 24 au 27 juin 2013 – PROMO

Bénéficiez d’une remise exceptionnelle de – 20% pour l’inscription d’au  moins deux personnes à notre formation en inter-entreprises intitulée « Développement d’applications Android professionnelles » session du 24 au 27 juin 2013.

Programme de la formation :

http://www.docdoku.com/formation/developper-des-applications-android-professionnelles/

 

 

Salon Solutions Linux, Paris les 28 et 29 mai 2013 : découvrez notre solution innovante DocDokuPLM

Linux_03

Nous serons présents au salon Solution Linux & Open Source les 28 et 29 mai 2013 au CNIT – Paris La Défense.

Venez donc nombreux sur notre stand (D12) découvrir notre solution innovante DocDokuPLM qui vous permet, entre autres, depuis un simple navigateur (sans auncun plugin ou installation) et depuis n’importe quelle plateforme (PC, Mac, Tablette, Smartphone) de :

– Visualiser vos modèles 3D.

– Collaborer par chat et visio-conférence.

Cliquez ici pour obtenir votre badge d’accès gratuit.

Charte pour l’emploi

Charte libre emploi job and floss

Nous sommes signataires de la charte pour l’emploi. Cette initiative vise à promouvoir l’apprentissage et favoriser la diffusion des connaissances du logiciel libre.

C’est une belle démarche, qui plus est contribue à fortifier le dynamisme de la France en la matière. N’hésitez donc pas à rejoindre le mouvement.

 

Les micro services peuvent-ils remplacer les serveurs d’applications ?

Un concept en fin de vie ?

Durant ces dix dernières années, particulièrement dans l’écosystème Java, le serveur d’applications fut le roi. Tout bout de code « server side » finissait fatalement déployé sur cet élément hautement important du système d’information. Comme nous l’enseignons nous-mêmes en formation son rôle est de fournir les services techniques aux applications (connexions aux bases de données, gestion du cycle de vie des composants, module d’authentification, supervision des transactions…) déchargeant ainsi les développeurs de l’implémentation de cette tuyauterie ; tâche critique et souvent difficile.

Cette séparation des responsabilités est au cœur de la philosophie Java EE, la spécification de la plateforme distingue en permanence les activités incombant aux développeurs d’applications de celles prises en charge par les administrateurs gérant l’infrastructure ou encore justement les fonctionnalités devant être assurées par le serveur d’applications.

Si on peut comprendre cette logique, pensée pour les environnements complexes des grandes organisations où le SI est géré de manière centralisée, cette approche souffre néanmoins d’une rigidité et d’une lourdeur certaine, chaque application nécessite avant d’être déployée que l’on paramètre son environnement technique sur son conteneur.

Les micro services

Les micro services s’inscrivent dans une démarche opposée : la notion de serveur d’applications (conteneur) gouvernant l’exécution des composants d’application déployés en son sein n’existe plus. Chaque micro service est une application « standalone » tournant dans son propre processus. Ces applications communiquent entre elles au travers de web services de type REST sans l’intermédiation d’un middleware devenu encombrant, à la manière des commandes Unix qui s’agrègent avec un simple pipe. Leur périmètre est généralement réduit, elles font une chose et s’attachent à bien le faire, ainsi on pourra les réécrire si nécessaire complètement en limitant les coûts.

REST a montré qu’il était néfaste de chercher à s’abstraire coûte que coûte du protocole HTTP, les micro services nous enseignent qu’il n’est sans doute pas optimal de chercher à effacer le système d’exploitation comme les serveurs d’applications Java se sont évertués à le faire, en voulant recréer un OS dans l’OS.

Les frameworks

Qui dit nouveaux paradigmes dit nouveaux frameworks. Toujours dans l’univers Java, il y a bien sûr le presque déjà vieux Playframework qui adopte une stratégie résolument de rupture en proposant une pile logicielle avant-gardiste et encourageant fortement l’usage du langage Scala, même si Java est également supporté. Un autre framework, bien que moins audacieux, mérite tout autant que l’on s’y intéresse, il s’agit de Dropwizard. Ce framework possède l’avantage de capitaliser sur des technologies matures, bien connues des développeurs Java EE comme Jersey, Jackson, Jetty ou encore Hibernate validator. La courbe d’apprentissage sera donc douce.

Allez bonne année et RDV en 2013 pour mettre tout ceci en pratique !

Retour sur le salon SIANE 2012 avec DocDokuPLM

Exposant pour la première année sur le salon SIANE (Salon des Partenaires de l’Industrie du Grand-Sud) qui avait lieu du 23 au 25 octobre 2012 au Parc des Expositions de Toulouse, je vous propose ici notre REX sur ce salon.

Stand SIANE-DocDokuPLM

Notre première participation était pour nous l’occasion de continuer de promouvoir au sein du tissu industriel régional, national et international notre solution innovante DocDokuPLM et donc également de capter sur le terrain les besoins des industriels en matière de PLM.

Nous avons ainsi rencontré un grand nombre d’industriels et de partenaires sur ce salon, ce qui nous a réellement permis de confronter les besoins concrets des entreprises avec notre solution innovante de PLM. Il est en effet toujours indispensable de garder à l’esprit que la technologie n’a de réelle valeur que si elle est au service des usages.

En résumé donc, je retiendrais que les industriels sont très captifs au fort ROI que propose notre solution Open Source.

En effet, nous avons noté que trois éléments technico-économiques ont retenu l’attention de tous nos visiteurs lors de ce salon :

– la possibilité de visualiseur tous types de modèles  3D  (Catia, Inventor, AutoCAD, NX…) sur tous types de terminaux (PC/Mac/Tablettes/Smartphones) directement dans le navigateur internet sans aucune installation ou plugin,
– notre modèle de coût non proportionnel au nombre de postes déployés puisque aucun déploiement nécessaire (donc pas de coût de licence, modèle Open Source), ceci permettant de ne pas limiter les usagers et les usages pour encore plus de ROI,
– la facilité d’intégration de notre solution moderne et résolument orientée web et cloud-ready avec l’existant (CAO, autre PLM, ERP, applications métiers…).

Mais nous avons surtout constaté que les avantages technico-écoonomiques de notre solution procurent une réelle valeur ajoutée métier au sein des industries puisque capables de susciter des nouveaux usages :

– pour le partage des données autour des modèles 3D dans un contexte d’entreprise encore plus étendue (entre clients, fournisseurs et partenaires) grâce au cloud,
– pour une meilleure information produit en situation de mobilité lors des phases d’assemblage et de maintenance,
– pour les managers souhaitant visualiser simplement l’avancement du produit, le montrer et communiquer atour de ce dernier,
– pour le marketing et les commerciaux pouvant enfin disposer simplement depuis n’importe où de la dernière version produit en clientèle !

Enfin, nous avons également relevé une fonctionnalité qui nous a été demandée à plusieurs reprises et qui sera donc prochainement incluse dans notre roadmap  : la possibilité d’effectuer des relevés ou mesures 3D des produits directement sur le modèle 3D, très utile pour les opérationnels mais également pour les utilisateurs devant réaliser des devis et tarifer selon les dimensions des solides.

Bilan extrêmement positif et enrichissant donc pour ce salon SIANE 2012 avec quelques contacts très intéressants à approfondir !

Pour information, le prochain salon où nous serons présent avec DocDokuPLM est un salon international plus orienté grands comptes de l’aéronautique et du spatial,du 4 au 6 décembre 2012 à Toulouse : Aeromart 2012.

Android – Apprenez à développer efficacement pour le leader des OS mobiles (3ème édition)

Voici la troisième édition du livre intitulé Android – Apprenez à développer efficacement pour le leader des OS mobiles, et écrit par notre Directeur technique Florent Garin, aux éditions Dunod.

9782100585106-G

 

Cet ouvrage s’adresse à tous ceux qui désirent se lancer ou se perfectionner dans le développement d’applications sous Android.

Il a pour but d’être le guide concret et indispensable pour développer une application, depuis le téléchargement du SDK (Software Development Kit) jusqu’au déploiement de l’application soit en entreprises, soit sur l’Android Market.

Il fournit l’essentiel de ce qu’il faut connaître de l’architecture logicielle d’une application Android avant de passer à la pratique du développement. Cette édition repose sur la version 4.1 d’Android.

La construction d’une interface graphique adaptée aux terminaux tactiles à taille réduite est expliquée en détail. Les quatre composants Activity, Service, BroadcastReceiver et ContentProvider qui sont les piliers d’Android sont décrits et mis en oeuvre avec des exemples. Un chapitre est consacré à la persistance des données et un autre aux communications réseau.Les derniers chapitres portent sur les écrans tactiles, les GPS, APN, NFC (Near Field Communication) et autres accéléromètres «embarqués» dans les smartphones.

Cette troisième édition s’enrichit de compléments et de mises à jour sur le développement d’applications pour les tablettes tactiles, sur l’usage du pattern MVC, et sur les problèmes posés par la disparité des OS mobiles.

Chaque chapitre traite d’un aspect spécifique d’Android et est accompagné d’exemples de code concrets qui sont téléchargeables gratuitement sur www.dunod.com.

DocDokuPLM winner of the Open World Forum Demo Cup 2012

That’s with a great pleasure that we received an Innovation Award for the demo cup at the Open World Forum which took place the 11, 12 and 13th october 2012.

The demo cup consisted of presenting our open source software in a time boxed format of 7 minutes! That was a very funny and challenging exercise, especially with a jury composed of experts and an audience hard to impress.

So, I made a live demo of DocDokuPLM.

DocDokuPLM - Digital MockUp inside your browser

I started with the classical login screen, then quickly went through the document management module. I didn’t take much time on this part of the software as document management is becoming a commodity nowadays. However I explained that our DM is not as classical as it seems in the sense that it follows the PLM industry terminologies and definitions, especially those defined in the « OMG PLM services » and the STEP standards.

After that, I came to what was the heart of my presentation: the DMU (Digital Mock-Up) inside the browser without any plugin. I demonstrated how we can rotate, zoom in or out and move the product model. I showed how to hide/display specific assembly parts just by clicking on checkboxes.

Then I played with the layers and markers functions of our tool that allow to pin notes directly on the model.

At last, I finished my demo with an impressive mashup feature that permits to publish the whole model in any blog, wiki, forum exactly like what we can do with youtube or dailymotion videos.

Finally we were the first team to be called on stage to receive our prize quickly followed by Blue Mind that proposes a messaging and calendar solution and by Hippo with their HippoCMS which is a context sensitive CMS system.

DocDokuPLM - OWF2012 democup winner

 

CRM et support à la vente sur tablette

Akerys est l’un des plus importants promoteurs immobiliers du sud de la France. Couvrant toute la chaine de valeur, de la construction à la commercialisation des logements ; Akerys entend optimiser cette dernière étape tant il est capital de vendre les lots en un minimum de temps.

Pour cela, Akerys nous a demandé de développer une application destinée aux commerciaux pour présenter les résidences sur iPad à leurs prospects.

L’application est divisée en deux parties (cliente et serveur) :

  • Un back-office full-web pour la création des catalogues (images, vidéos, liens, géolocalisation)
  • Une application iPad de présentation des biens immobiliers, comprenant également un CRM (saisie des fiches prospects).

 

L’application iPad fonctionne en mode déconnecté, les échanges de données avec le serveur, que ce soit le catalogue des produits et les informations du CRM sont transmis par un mécanisme de synchronisation.

Retour sur DevoxxFR

Jeudi 19 et vendredi 20 avril avait lieu à Paris la conférence DevoxxFR,  par et pour les développeurs java.

La première chose à souligner est l’immense succès de cette première grande conférence puisque nous étions 1250 personnes réunies à l’hôtel Mariott pour les deux derniers jours.

À l’occasion de la sortie des vidéos sur la plateforme Parleys, petit retour sur quelques conférences que j’ai eu l’occasion de voir.

Keynotes

Les deux keynotes qui m’ont particulièrement marquées sont celles de Neal Ford et de Patrick Chanezon.

Dans Abstraction Distractions, Neil Ford nous parle de l’empilement des couches d’abstractions qui envahissent notre quotidien sans qu’on y prête plus vraiment attention et qui peuvent parfois nous induire en erreur. Il nous conseille de toujours avoir à l’esprit ce qui se passe en dessous de la couche que l’on utilise.  Sa keynote est agrémentée d’anecdotes qui font sourire l’auditoire.  Du gros niveau !

Patrick Chanezon enchaîne ensuite avec le portrait d’un développeur en reprenant la trame de The Artist.  On suit le parcours d’un mec qui pendant plusieurs années est le roi du pétrole à coder du cobol dans des SI bien complexes dont seul lui a le secret (=période où Jean Dujardin est une star du cinéma muet).  Puis à l’arrivée de nouvelles technos sympa type mobile, cloud, html5 (=l’arrivée du cinémas parlant) le dev ne s’y intéresse pas et reste dans sa zone de confort.  Malheureusement pour lui ces nouvelles technos prennent de plus en plus de place et notre ami se retrouve rapidement dépassé et remisé au placard (=dépression de Jean Dujardin).

Mais finalement tout est bien qui finit bien car notre développeur se prend en main, réalise qu’il fait partie d’une communauté de passionnés, participe à des jugs et vient à Devoxx. Et finalement cela donne une keynote plutôt rafraîchissante et pleine d’humour.  Bien joué.

Play Framework 2.0

Un mois après la release de la version 2, Sadek Drobi, CTO de Zenexity et Guillaume Bort, cofondateur de Zenexity et créateur de Play Framework retracent l’histoire du web pour expliquer les fondements du framework.

Au départ, le web était constitué de pages statiques puis nous sommes passés dans une phase de langages dynamiques avec notamment PHP, il a fallu ensuite structurer tout ça et c’est à cette époque que sont apparus les premiers frameworks MVC. Plus proche de nous, on a assisté à la démocratisation d’Ajax qui nous a apporté la mise à jour des pages sans besoin de recharger le navigateur.

Aujourd’hui, une page est bien souvent constituée de fragments autonomes, « bindés » sur des flux de données.  Sadek et Guillaume prennent l’exemple de twitter.  Le besoin est réel de structurer ces flux car nous sommes en plein dans l’ère du web temps réel.

C’est sur ce constat qu’a été bâti Play Framework 2,  apporter un socle pour structurer l’interaction avec des streams de manière efficace.

Et voilà du coup ce qu’il est possible de faire : http://console-demo.typesafe.com l’explication ici : http://typesafe.com/products/console

La présentation continue avec comme leitmotiv « don’t fight the web » :  il ne sert à rien d’abstraire le web mais au contraire il faut bâtir en s’appuyant dessus.  Ce que l’on retiendra c’est que Play Framework est un framework stateless full stack qui embrasse le protocole http.

D’un point de vue personnel, cette présentation m’a donné envie d’explorer plus en détail la version 2 de Play, la version 1 apportait déjà beaucoup de fun dans les développements.  Chez DocDoku, nous l’utilisons d’ailleurs en production sur certains projets.

Behind the Scenes of Day-To-Day Software Development at Google

Petra Cross de Google vient nous parler des méthodes de développement chez Google, elle nous présente d’abord la hiérarchie type d’une équipe de développement puis nous parle des méthodes de travail.  On apprend que les maîtres mots sont ‘pragmatisme’ et ‘efficacité’. Par exemple l’équipe de Petra applique l’agilité dans le sens où ils utilisent un backlog de tâches, par contre ils ont totalement supprimé le standup meeting qui selon elle est une perte de temps  (j’entends les agilistes hurler !).

Un concept intéressant massivement utilisé chez Google est le ‘eating your own food’,  il s’agit d’utiliser soit même les produits que l’on conçoit. Ainsi  les googlers utilisent en interne les nighlty build de leurs produits ce qui permet d’avoir un feedback très rapide et de qualité sur les développements.

Conférences Android

J’ai eu l’occasion d’assister à deux conférences sur Android :  « Optimiser vos applications HTML pour Android » et « Android, Graphisme et Performance ». La première présentée par Romain Guy était un condensé de trucs et astuces afin d’optimiser l’IHM des applications Android.

Parmi les astuces et optimisations vues :

  • ViewStub : permet d’instancier (« inflater ») des vues au runtime uniquement si besoin. Cela limite l’empreinte mémoire des View qui peut être très coûteuse, par exemple une TextView vide prend 800 octets en mémoire.
  • StrictMode : outil de debug qui permet d’être notifié lorsqu’une opération lente est effectuée (écriture et lecture disque, opération réseau) ou lorsque une fuite mémoire est détectée (fuite sur les objets sqlite, objet closable non fermé, fuite des activity)
  • GridLayout : nouveau layout introduit d’ICS, moins gourmand que LinearLayout.  Pour les versions Android précédentes, Romain nous conseille RelativeLayout là où c’est possible plutôt que LinearLayout
  •  hierarchyviewer : outil du sdk qui permet de visualiser les grappes de vues et d’analyser leurs performances.

Romain nous détaille également une spécificité des AsyncTask : à partir de l’API level 12 les AsyncTask sont exécutées de manières sérialisées, les unes après les autres. Attention donc à ne pas ralentir la file d’exécution avec une tâche trop longue. Google justifie ce changement en expliquant que la programmation multithread est compliquée. Ils ont donc décidé de revenir sur le comportement par défaut pour limiter les bugs potentiels. Par contre si l’on est sûr que les tâches sont totalement thread-safe, il est tout a fait possible programmatiquement de revenir au comportement précédent.  Ainsi pour paralléliser les AsyncTask il suffit d’appeler :

task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

La deuxième conférence Android est celle du googler Nicolas Roard qui travaille sur la webview Android. Nicolas nous délivre quelques astuces pour optimiser les performances dans une webview.  Il nous recommande de privilégier le CSS3 plutôt que le javascript lorsque l’on souhaite faire une animation.

Il nous explique également comment forcer la création de layers qui seront accélérés de façon hardware à partir de la version 3.  Pour cela il suffit d’appliquer une propriété css de transform 3D sur un élément.  On peut également créer un layer sur un scroll afin d’obtenir un rendu proche du natif grâce à la propriété css overflow scroll.

Attention tout de même, ces layers ont certes un rendu fluide mais ils sont très couteux. Il est donc conseillé de les utiliser avec parcimonie, par exemple uniquement durant une animation.

Nicolas termine par 25 minutes de questions/réponses. Les questions majoritairement posées tournent autour des performances de la webview qui souffre de la comparaison avec l’application Google Chrome pour Android.

Il nous explique que même si les deux s’appuient sur le moteur de rendu webkit, les contraintes ne sont pas les mêmes. La webview fait partie intégrante du framework, l’équipe a donc des contraintes quant à la mémoire et l’espace disque utilisé, la webview doit être compatible avec un maximum de choses et rétro compatible avec les précédentes releases. L’équipe de Nicolas a notamment fourni un effort de travail spécifique pour afficher correctement les widgets jquery mobile.

Toutes ces contraintes ne sont pas applicables à Chrome, Chrome est téléchargé depuis le market, c’est un choix de l’utilisateur, par conséquent ils ont beaucoup plus de liberté. Ils peuvent prendre des décisions, avancer vite et releaser souvent, chose impossible à faire pour la webview qui doit attendre une nouvelle version d’Android pour être mise à jour.

Nicolas conclut en nous assurant que les deux équipes mettent en commun beaucoup de travail et que tout le monde en tire un bénéfice.

Quickies

Entre midi et deux avaient lieu les quickies, un format court de conférences où en 15 minutes un speaker présente un sujet qui lui tient à cœur.

J’ai pu notamment voir Mathilde Lemee nous présenter son projet FluentLenium qui facilite l’écriture des tests Selenium en proposant une API très lisible (d’où le fluent !). Et effectivement quand on regarde l’exemple de base, on comprend tout de suite le test :

public class BingTest extends FluentTest {
    @Test
    public void title_of_bing_should_contain_search_query_name() {
        goTo("http://www.bing.com");
        fill("#sb_form_q").with("FluentLenium");
        submit("#sb_form_go");
        assertThat(title()).contains("FluentLenium");
    }
}

FluentLenium s’appuie sur les selectors CSS (même si les regex sont possibles). Enfin la dernière chose à noter sur le projet est qu’il est agnostique du framework d’assertion, ainsi jUnit Assert, Hamcrest et Fest-assert sont supportés.

Un deuxième quickie assez fun fut celui de Philippe Antoine qui s’est proposé de recoder en live le tetris de Martin Kleppe dont une version est jouable ici : http://jsbin.com/egiqul/49

La spécificité initiale de ce Tétris est d’être codé en 140 caractères, cette performance est possible en utilisant le décalage binaire.

Philippe se lance donc dans la réalisation du Tétris avec l’aide de la salle,  il en profite pour nous montrer comment faire du TDD en javascript avec QUnit. Un quickie original qui a bien plu.

Code Story

Pendant les deux jours de conférences, une équipe de quatre développeurs a codé en live une application from scratch. Chaque slot de conférence a donné lieu à un sprint. Ils ont fonctionné en pair programming avec un binôme codant pour la salle : ordinateur relié au vidéo projecteur en commentant le code.  J’ai eu l’occasion d’assister à un sprint, et par la même occasion j’ai pu découvrir Trello un super outil très souple et très simple de gestion de projet.

Conclusion

En tant que développeur, je me suis régalé durant ce Devoxx, j’ai pu satisfaire ma curiosité sur des sujets totalement nouveaux pour moi, comme me plonger dans des astuces plus techniques sur des sujets comme Android.  Si je devais dégager des keywords de cette grande et belle conférence, je choisirais :  cloud, mobile, html5 & javascript, NoSQL.

Gestion des réserves

Dans le secteur de la construction, la gestion des réserves, c’est à dire le recensement des malfaçons aux différentes étapes des travaux, est une activité essentielle qui peut s’avérer compliquée en raison du volume d’anomalies qui peut dépasser la dizaine de milliers sur certains gros chantiers.

Aujourd’hui grace aux tablettes tactiles il est possible d’outiller cette tâche et dégager ainsi d’importants gains de productivité. C’est ce que nous avons fait en développant pour notre client Wapp6, éditeur spécialisé dans la construction, l’application iOS et Android Opr6 (gestion des réserves).

Opr6 iPad

 

L’implémentation du client Opr6 a été réalisée grâce au framework Titanium qui permet d’obtenir deux versions de l’application : une pour iPad/iOS et une pour Android et cela avec un rendu visuel natif. L’application fonctionne en mode déconnecté, une synchronisation est faite une première fois avant de faire la visite de chantier pour rapatrier les données du projet (plans, réserves existantes, punchlists, listes des intervenants…) et une seconde fois à la fin de la visite pour consolider les saisies effectuées sur la tablette sur le cloud (serveur python/django pour les initiés). Un rapport est alors automatiquement généré et envoyé aux personnes concernées.

La fiabilité des informations de suivi, le gain de temps, l’efficacité générale s’en retrouvent énormément améliorés.

 

Les actes médicaux sur iPad

Pour le compte de MiPih, une des plus grandes structures publiques spécialisées dans le domaine de la santé, nous avons développé une application iPad de consultation du référentiel des actes médicaux.

L’application dispose d’un module de statistiques, d’une base de données locale (SQLite) répliquée d’une base de données Oracle. Le référentiel est historisé ainsi le médecin peut connaitre précisément la législation qui était applicable au moment de la réalisation de tel ou tel acte.

mipih

Sur le plan technique, l’application est bâtie autour d’une UISplitView et les données sont accédées au travers de l’API Core Data qui est l’ORM (Object-Relational Mapping) d’iOS. Un effort particulier a du être réalisé sur le paramétrage du framework pour atteindre les objectifs de performance ambitieux qui avaient été fixés : une navigation parfaitement fluide et une recherche au fil de l’eau multi-critères instantanée.

Retour sur notre présence au Mobile World Congress 2012

Quelques jours passés au sein du MWC 2012 à Barcelone la semaine passée m’amène aujourd’hui à écrire ce billet.
L’objectif principal de notre présence sur ce salon (milles mercis à Midi-Pyrénées Expansion et à Ubifrance au passage) était de réaliser à la fois un maximum de veille technologique mais également de rencontrer des partenaires potentiels.

Le premier constat que l’on fait lorsqu’on arrive sur le site de Fira Barcelona est le gigantisme de ce salon.  En effet, ce salon draine environ 70 000 visiteurs, 1 500 exposants…  je vous invite d’ailleurs à jeter un œil sur le site de l’évènement : http://www.mobileworldcongress.com/2012-highlights.html

MWC 2012 - So huge

Difficile donc d’être exhaustif lors d’un salon comme celui-ci. J’ai donc orienté ma visite sur un échantillon représentatif de constructeurs, éditeurs et fournisseurs de services du domaine. Je m’en vais vous livrer les grandes tendances selon moi de ce salon.

L’omniprésence d’Android

Google et la communauté Android ont frappé fort sur ce salon, avec une présence imposante, reflet de l’adoption du marché et des professionnels.

L’ « Android Planet » était bien évidemment impressionnante sur ce salon, avec de nombreux stands, animations Google mais aussi avec la présence de nombreux éditeurs (Autodesk, Shazam, …).

Mais ce qui m’a le plus marqué était certainement le plébiscite de l’OS auprès des professionnels du domaine :

– les constructeurs : Motorola, HTC, Samsung, Sony Ericsson, Alctalel TCT, Intel, ZTE… même RIM s’y met avec son runtime Android (le preuve ci-dessous)

RIM Android Runtime

– les éditeurs : VMWare et sa solution de virtualisation pour « Make Android Entreprise-ready », Ubuntu avec sa version Ubuntu for Android pour la rencontre du meilleur des deux mondes (mobile et PC), Firefox et sa version très performante pour tablette Android…

Quelle montée en puissance !! « Demain, un Android dans chaque poche », imagine le patron de Google, Eric Schmidt.

Les NFC se rapprochent


Bon nombre d’exposants (Safran Morpho ci-dessus, Gemalto, Google, Sony…) ont démontré la maturité de cette technologie, tant au niveau des équipements (puces et téléphones) que des couches logicielles (cf API Beam de Google par exemple). Nos amis coréens sont largement en avance sur les usages NFC c’est un fait. Mais même si peu de freins technologiques subsistent aujourd’hui, en Europe ce sont plutôt les réticences psychologiques des utilisateurs (liées à la sécurité pour le paiement notamment) et les aspects stratégiques entre opérateurs, banques et éditeurs qui ralentissent sa progression. Mais 2013 sera l’année de son explosion apparemment !

La quête de performances

Ce salon a été également l’occasion de constater une véritable course à la performance des plateformes mobiles tant au niveau des constructeurs que des éditeurs.

J’ai en effet par exemple assisté à une session impressionnante chez Intel avec la démonstration du nouveau téléphone Orange Santa Clara équipé du nouveau processeur Atom Medfield à très basse consommation.  Après une belle session de dix minutes de jeux de voiture 3D sur le stand, le téléphone ne chauffe même pas alors que la fluidité est vraiment au rendez-vous.

Ensuite, une petite visite s’imposait sur le stand de Microsoft qui proposait un challenge « against » son dernier Windows Phone 8. Voici  le tableau d’affichage en milieu de semaine :

L’arrivée imminente du réseau 4G

La 4G arrive en force sur nos devices mobiles, la Corée du Sud aura semble-t-elle fini son déploiement national fin 2012.  SFR en France annonce le même résultat sur son réseau. Vous avez donc compris que le très haut débit arrive sur le mobile avec le passage de nos communications mobiles sur de la voix sur IP (n’ayant assisté à aucune conférence sur le sujet, un grand merci à Eric Fruit de ephoneNet pour son œil expert).

Pour conclure, je dirai modestement que ce salon était sans surprise, aucune innovation de rupture technologique forte ne m’étant apparue. L’innovation se trouve et se manifestera désormais par l’usage et certainement par la capacité à adapter les technologies aux nouveaux besoins BtoC mais aussi BtoB orienté Système d’Information (notre réel savoir-faire pour le coup).

Je vous prépare un billet complémentaire pour la semaine prochaine au niveau des tendances applicatives (MCommerce, Gestion de flottes, Marketing Mobile, HTML5…).

GWT est-il toujours pertinent ?

Il y a 3 ans, lorsqu’il s’agissait de définir le socle technique d’une nouvelle application web, en l’absence de contraintes exogènes, GWT (Google Web Toolkit) était pour nous un choix naturel pour le développement de la partie « front web ». Les arguments massue de l’époque étaient le manque de portabilité de JavaScript, son faible niveau d’outillage par rapport à Java et aussi la grande difficulté que l’on peut rencontrer à développer une large application avec un langage aussi dynamique et faiblement typé que JavaScript. Face à ces écueils, GWT représentait le rempart absolu, la solution ultime.

Aujourd’hui toutefois, les choses ont de mon point de vue quelque peu évolué.
Tout d’abord, le support de navigateurs obsolètes, comme Internet Explorer 6 par exemple, n’est plus l’obsession des DSI qui par contre tiennent de plus en plus à ce que leurs applications offrent également un bon rendu sur les dispositifs mobiles et tactiles.

Ensuite, l’écosystème JavaScript a progressé. Si les jQuery et autres Prototype existaient déjà il y a 3-4 ans, des frameworks de plus haut niveau tels que Backbone.js, JavaScriptMVC, s’appuyant d’ailleurs sur jQuery, ont fait leur apparition. Ceux-ci aident à fournir un cadre à la structuration des applications de grandes tailles, point délicat lorsque le volume de JavaScript devient important. Des moteurs de templates côté client comme mustache ou des starter kits, à l’instar de bootstrap twitter, sont également venus enrichir l’offre JavaScript.

Côté GWT aussi les lignes ont bougé, passés les premiers instants d’émerveillement, quelques défauts se sont fait sentir. Le premier d’entre eux est l’absence d’une vraie bibliothèque de widgets solide et pérenne. GWT étant avant tout un socle technique, Google laisse à la communauté ou aux éditeurs tiers le soin de bâtir sur son framework. Ainsi Ex GWT, SmartGWT, Vaadin pour ne citer qu’eux disposent de composants de plus haut niveau, prêt à l’emploi. Malheureusement ces bibliothèques n’ont jamais donné pleinement satisfaction : licence peu « business friendly », adhérence importante, problème de qualité. Au final, la sagesse recommande de se contenter de GWT et de tout développer soi-même…
Par ailleurs, GWT, au fil des versions, a gagné en complexité, le pattern « activities/places » pour être correctement employé exige que les développeurs soient bien formés ; RequestFactory, CellWidget sont des nouveautés qu’il conviendra à nouveau d’assimiler et qui contraindront la migration d’un bon nombre d’applications.
En outre, si GWT parvient à éloigner complètement JavaScript du développeur, il ne le préserve pas de CSS qui tend à prendre de plus en plus d’importance et devient une nouvelle source d’incompatibilité entre les navigateurs. On touche finalement au coeur du problème : GWT est une abstraction imparfaite ; cette encapsulation des technologies web ne dispense pas les développeurs d’en comprendre les arcanes.

Conclusion
Pour répondre très concrètement à la question posée par ce billet : oui GWT est toujours pertinent surtout s’il s’agit d’implémenter une grosse application de gestion avec des développeurs de niveau hétérogène. Par contre, pour une application innovante, faisant un usage prononcé des dernières fonctionnalités HTML5 (3D, communication temps réel) il est avantageux d’être en prise directe avec le browser (bare metal).
Quoi qu’il en soit, ce qui était annoncé à la sortie du framework de Google ne s’est pas produit : JavaScript n’est pas devenu l’assembleur du web. Qu’on le déplore ou non, ce langage est aujourd’hui incontournable, son champ d’application dépasse d’ailleurs largement le cadre du navigateur (CommonJS). Aucun développeur IT ne peut continuer à le bouder.