All posts in Digital Factory

Chaîne DevOps intégrant Jenkins avec Ansible ou OpenShift (1/2)

Introduction

Le but de cet article est de présenter brièvement le concept de DevOps, illustré par une implémentation concrète dans un environnement applicatif de microservices Restfull, développés dans le contexte d’une approche agile.

La première partie est consacrée au rappel des principes de DevOps et à la présentation du schéma architectural d’une chaîne DevOps avec Github, Jenkins, Artifactory et Ansible.

La deuxième partie présente une autre chaîne DevOps avec Github, Jenkins, Artifactory et OpenShift.

1      Agile et DevOps main dans la main

Image result for devops

Le développement d’applications dans le cadre d’une approche agile impose des livraisons fréquentes au rythme des itérations,  tout en préservant la qualité des livrables, la maîtrise des releases et l’adaptabilité à différents environnements techniques et applicatifs. Pour répondre à ces exigences, l’automatisation des processus est nécessaire ainsi qu’une synergie entre les équipes de développement et celles des opérations. C’est là que DevOps apporte la solution à ces problématiques d’intégration continue (IC) et de déploiement continu (DC).

2     Les apports de DevOps

  • Fréquence des déploiements accrue
  • Délai d’exécution réduit pour les modifications
  • Récupération plus rapide en cas de problème
  • Une sécurité plus robuste et mieux intégrée
  • Qualité accrue
  • Feedback rapide

3      Les outils de DevOps

A chacune des étapes du workflow automatisé de DevOps correspondent des outils open source ou propriétaires (ci-dessous une liste non exhaustive) :

  • Versionning-commit de code : SVN, Git, TFS, GitHub, Tuleap
  • Qualité de code : SonarQube, IntelliJ, Eclipse
  • Sécurité : SonarQube, Checkmarx, dependency-check-maven
  • Tests : JUnit, Mockito, Selenium, Postman, Gatling, Jmeter
  • Build : Maven, NPM
  • Intégration/Déploiement/Livraison continus : Jenkins, Teamcity, Bamboo, TFS
  • Gestion des releases : Nexus, Artifactory
  • Déploiement : Ansible, Docker, OpenShift, Azure, AWS, VmWare
  • Performance, monitoring : Nagios, Zabbix, Spring boot Actuator
  • Logs : Splunk, Logstash, Elasticsearch

4      Exemple d’une mise en oeuvre avec Ansible

La chaîne DevOps décrite ci-dessous permet d’assurer des déploiements sur différents environnements techniques : INT, VAL et PROD.

Elle est composée des éléments suivants :

  • GitHub
  • Git local installé sur chaque poste développeur
  • Jenkins assure les builds (compilation/packaging)
  • Artifactory : repository des artifacts
  • Ansible assure les déploiements


Dans ce cas d’utilisation, un job Jenkins pilote le build (compilation, tests unitaires automatisés, audit de code par SonarQube, packaging). L’artifact résultant (un jar, dans le cas d’un microservice springboot) est uploadé dans Artifactory.

En post-action, le job va déclencher un script Ansible chargé de déployer le microservice dans les différents nœuds d’un cluster.

4.1    Concepts utilisés dans Ansible

Ansible permet d’automatiser les tâches de configuration et de déploiement des applications. Son administration se fait par le biais d’une interface Web, Ansible Tower.

Cette administration est centralisée dans une seule machine, le Control Node, où est installé Ansible. Aucune installation d’un agent n’est faite sur les autres machines gérées par Ansible (Managed nodes). Les concepts énumérés ci-dessous permettent de comprendre le fonctionnement de Ansible :

  • Inventory (inventaire) : liste des nœuds gérés, spécifiant des informations telles que les adresses IP. Cette liste peut être organisée selon différents critères : localisation, fonction, …
  • Module: c’est une unité de code Ansible spécialisée sur un type de fonctionnalités qu’on peut invoquer pour exécuter des tâches : administration des utilisateurs sur un type spécifique de base de données, gestion des interfaces VLAN sur un type spécifique de périphérique réseau, etc …
  • Task: c’est une unité d’action Ansible qu’on peut exécuter par une commande
  • Playbook: Liste ordonnée de tâches, enregistrées à exécuter à plusieurs reprises. Les playbooks peuvent inclure des variables ainsi que des tâches. C’est des fichiers écrits en YAML.
  • Roles : les rôles sont définis pour charger automatiquement des fichiers de configuration, tâches et gestionnaires. Ils sont organisés sous forme de fichiers dans des répertoires ayant un nommage et une structure pré-définis. Les rôles sont invoqués dans les playbooks (comme les imports dans un fichier java).

Exemple de mise en œuvre d’Ansible dans   Integrating Ansible with Jenkins in a CI/CD process.

  En résumé

Dans cette première partie,  ont été rappelés les concepts de DevOps en relation avec une approche agile du développement d’applications. Un premier schéma architectural de chaîne DevOps est présenté ayant comme outil de versionning et de repositories GitHub et Artifactory,  Jenkins comme pilote de l’intégration et du déploiement continus.

Cette chaîne utilise Ansible pour exécuter les déploiements sur les différents nœuds et environnements de l’application. Ansible est installé sur un nœud unique et permet via les playbooks et son interface Ansible Tower d’automatiser le processus de déploiement sur un grand nombre de nœuds (serveurs, périphériques, …).

Dans la deuxième partie, un autre schéma architectural d’une chaîne DevOps utilisant OpenShift sera présenté.

  Pour en savoir plus

Retrouvez-nous au 12ème forum technique des membres d’aerospace Valley

DocDoku participe au 12ème forum des adhérents

Du 16 au 17 mai 2017 se tiendra le 12 ème forum des adhérents d’Aerospace Valley, DocDoku y participera et y sera exposant.

« Digitalisation, quels risques, quelles opportunités pour nos filières ? »

C’est le thème du forum de cette année qui se tiendra au palais des Congrès d’Arcachon. Un thème majeur pour notre société puisque notre coeur de métier est la digitalisation des processus et des données métier des organisations.
Ces sera en effet l’occasion pour nous de présenter notre accélérateur de transformation digitale en notre plateforme open source DocDokuPLM.
N’hésitez donc pas à nous retrouver sur notre stand afin d’échanger sur vos enjeux et vos projets digitaux.
Pour plus d’informations sur le programme, rendez-vous ici sur le site d’Aerospace Valley.

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.

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.

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.

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…).

DocDoku présent au Mobile World Congress du 27/02 au 01/03/2012

Nous serons en effet présents cette année à l’évènement mondial du mobile, le MWC à Barcelone du 27/02 au 01/03/2012.
N’hésitez pas à nous rendre visite sur le Pavillon Français, Hall 2.0 ou à nous contacter pour prendre rendez-vous sur vos stands ou autres points d’échanges :

 
 

Concevoir et développer des applications mobiles et tactiles (2ème édition)

Voila quelques mois déjà que la seconde édition de mon livre consacrée à Android est sortie. 

Cette nouvelle version intègre d’une part une mise à jour du contenu vers les dernières moutures d’Android mais également de nouveaux chapitres qui élargissent quelque peu le propos de l’ouvrage.

Je traite en effet dans la nouvelle édition des problématiques du développement mobile multi-plates-formes et des tablettes tactiles.

Ces deux sujets sont d’ailleurs au centre des préoccupations de beaucoup de nos clients.

 

Concevoir et développer des applications mobiles et tactiles

Android (Florent Garin - 2ème édition)

 

DocDoku et Webinage font carton plein à la Mêlée Numérique XV !

Cette année encore, DocDoku était présent à la Mêlée Numérique et accompagné d’un partenaire de grande qualité avec Webinage.

Sur le stand de DocDoku, vous avez pu assisté à la présentation de l’application tactile que nous avons réalisée pour et avec Webinage.

Vous avez été également très nombreux à vouloir une démonstration de notre solution de GED Open Source disponible en SaaS.

Ces deux journées ont donc été plus que satisfaisantes pour l’équipe DocDoku car un public de qualité était au rendez-vous.

La conférence sur « HTML 5 ou l’évolution majeure du web et de l’internet mobile » présentée par Florent Garin notre Directeur Technique et Thomas van de Velde, Directeur Général de Webinage a rencontré un grand succès, avec la participation d’une centaine de personnes dans la salle !

Si vous n’avez pas pu assisté à la conférence, la présentation sera prochainement disponible sur notre blog et sur le site internet de la Mêlée Numérique.

DocDoku vous offre une tablette tactile pour tout contrat signé à la Mêlée Numérique XV

DocDoku aura le plaisir de vous accueillir sur son stand lors de la 15ème édition de la Mêlée Numérique à l’Espace Diagora de Toulouse Labège, les mercredi 20 et jeudi 21 avril 2011. Le Salon des TIC numéro 1 sur le Sud Ouest rassemble tous les acteurs économiques des solutions de l’informatique, des nouvelles technologies, des télécoms et de l’innovation. Au programme : 150 exposants, 45 ateliers et conférences et plus de 3000 visiteurs attendus.

L’actualité de DocDoku
Cet évènement sera l’occasion pour DocDoku de vous présenter sa dernière réalisation tactile entièrement développée au moyen de technologies innovantes Open Source (HTML 5, CSS3, JQuery, SIPCommunicator…). Venez également échanger avec nous sur notre solution de gestion du cycle de vie des produits (Product Lifecycle Management) Open Source, qui est incubée au sein d’OW2 et devrait être lancée au début de l’année prochaine.

Animation sur le stand
Assistez à une démonstration de l’application multiplateforme Webinage, notre dernière réalisation tactile entièrement développée au moyen de technologies innovantes Open Source.

Animation atelier
Notre directeur technique, Florent Garin, animera également un atelier sur « HTML 5 ou l’évolution majeure du web et de l’internet mobile » le mercredi 20 avril de 16h30 à 17h30 . Inscrivez-vous sur le site du salon.

A Propos de DocDoku
DocDoku est un cabinet de conseil et de formation innovant disposant d’une expertise sur les technologies et solutions Open Source (Java, JEE, Android, DocDoku, Liferay…). Cette expertise nous permet d’avoir la confiance de clients majeurs comme Amadeus, Axa, Cegedim, Dassault, LG, Motorola, Météo France, Mia Electric, MSA, NEC ou Pierre & Vacances.
Nativement éditeur de la solution libre éponyme de gestion collaborative de documents (GED ou ECM), notre activité résolument tournée vers la recherche et développement nous permet d’apporter une réelle valeur ajoutée à nos prestations de conseil, d’expertise, de formation et de réalisation de projets dans le domaine IT.
Nos consultants sont très impliqués dans nos projets de recherche et développement essentiellement Open Source et assurent une veille technologique permanente.

Plus d’information sur le salon
Mercredi 20 et jeudi 21 avril 2011 à l’Espace Diagora de Toulouse Labège. Entrée gratuite Le site du salon : http://www.meleenumerique.com

Contact Presse
M. Eric Descargues Téléphone : 05 61 72 24 09

Mentions Légales
DocDoku SARL au capital de 20 000 euros RCS Toulouse : 492 273 800 000 28 Code APE : 5829C Buroplis – Bâtiment B – 150 rue Nicolas Louis Vauquelin 31100 Toulouse
http://www.docdoku.com

Premier Mobile Monday Toulouse : retours et présentation DocDoku en ligne

Salle comble (60 personnes) ce lundi soir pour le premier Mobile Monday  à La Cantine sur la NFC !
L’occasion pour DocDoku de présenter son savoir-faire dans le domaine du mobile, d’échanger avec des passionnés et experts de la mobilité.
J’ai pour ma part beaucoup apprécié le format de la soirée, les autres intervenants et leurs interventions ainsi que les échanges autour d’un verre.
Merci à la Mêlée et à Thomas Soulier pour l’animation de cette soirée fort sympathique.
Les chiffres du marché des OS mobiles 2011 – 2014 qui ont fait débat :

Le marché des OS mobiles 2011 - 2014

Notre présentation est en ligne sur le site de la cantine : http://lacantine-toulouse.org/626/mobile-monday-toulouse-1ere-edition-sur-la-nfc
ou directement ici :

Le Grand Toulouse est prêt à accueillir la NFC selon Louis Germain, élu de la Communauté Urbaine du Grand Toulouse. Organisons-nous !

 

 

DocDoku au 1er Mobile Monday Toulouse sur la NFC : actualités et perspectives des OS mobiles

Nous interviendrons pour la 1ère édition du Mobile Monday Toulouse du 4 avril 2011 consacrée à la NFC.
Il s’agira de faire le point sur les possibilités des OS mobiles aujourd’hui et demain.
Mobile Monday dédié à la NFC

Tout le programme est disponible ici : http://lacantine-toulouse.org/626/mobile-monday-toulouse-1ere-edition-sur-la-nfc
Cela se passe à la Cantine à partir de 18h30. Venez nombreux !

Ubuntu Party

Avec un peu de retard, voici la présentation que j’ai faite à l’occasion de l’Ubuntu Party. Il y est question d’Android ; abordé sur le plan technique mais aussi sous l’angle « écosystème » : les liens entre Google, les utilisateurs, les développeurs et les constructeurs.

Au cours de nos missions de formations ou de conseil chez ces derniers (nous avons travaillé pour Motorola, NEC et LG) j’ai pu entre-apercevoir que les relations Google-Constructeurs peuvent être plus complexes que ce qu’on pourrait penser.

De plus, le simple fait qu’Android soit disponible sous une licence libre (GPL ou Apache selon les composants) est très insuffisant pour garantir que son développement se fasse en toute transparence et en respectant les intérêts des divers protagonistes. Ceci étant, on peut dire la même chose d’autres projets open source.

Ubuntu Party – Android et son écosystème (Florent Garin – DocDoku)