Polymer en production : On a osé !

28
Polymer en production On a osé ! Sylvain Weber CEO / Co-fondateur, Kontest @sylvainw Etienne de Dieuleveult Web developer, Kontest @TinOo512

Transcript of Polymer en production : On a osé !

Page 1: Polymer en production : On a osé !

Polymer en productionOn a osé !

Sylvain WeberCEO / Co-fondateur, Kontest@sylvainw

Etienne de DieuleveultWeb developer, Kontest@TinOo512

Page 2: Polymer en production : On a osé !

Contexte

Plate-forme de création de jeux-concours multicanaux

➔ Créé en 2010➔ 15 collaborateurs➔ 33 Applications disponibles➔ Clients : Agences / Grands comptes

Site web : Kontestapp.com

Page 3: Polymer en production : On a osé !

Google IO25 Juin 2014

Page 5: Polymer en production : On a osé !

Material Design

Page 6: Polymer en production : On a osé !

Innovations

Page 7: Polymer en production : On a osé !

Pourquoi Polymer ?

➔ Material Design➔ Web components➔ Culture de l’innovation➔ Être pionnier➔ Faire évoluer l’existant

Page 8: Polymer en production : On a osé !

Structure d’un composant

➔ Custom Elements➔ HTML Templates➔ HTML Imports➔ Shadow DOM

Page 9: Polymer en production : On a osé !

Architecture

Page 10: Polymer en production : On a osé !

Composabilité

Page 11: Polymer en production : On a osé !

<polymer-element name="kui-game-knowledge"

attributes="answers settings">

<template>

<link rel="stylesheet" href="kui-game-knowledge.css"

shim-shadowdom>

<kui-game-quiz class="game" answers="{{answers}}"

settings="{{settings}}">

</kui-game-quiz>

</template>

<script type="text/javascript" src="kui-game-knowledge.js"

></script>

</polymer-element>

Héritage➔ Nom (spinal-case)➔ Attributs publiés

➔ Template obligatoire (Shadow Dom)

➔ Custom element➔ Data binding

➔ Script : définir l'élément, ses fonctions et ses attributs

Page 12: Polymer en production : On a osé !

Stack existante

Page 13: Polymer en production : On a osé !

Implémentation

➔ Retour AJAX HTML vers JSON

AVANT

APRÈS

Page 14: Polymer en production : On a osé !

Quiz classique

Page 15: Polymer en production : On a osé !

Quiz Polymer

Demo : quiz-polymer.xg1.li

Page 16: Polymer en production : On a osé !

Création de 6 jeux Polymer

Page 17: Polymer en production : On a osé !

16 octobre : Lancement officiel

Page 18: Polymer en production : On a osé !

Timeline

25 Juin 2014Découverte du Material Design

ProduitTests de faisabilitéavec Polymer

Jui Août Sept Oct Nov Déc

StagiairesCréationd’un prototypede Quiz

StagiairesCréation des 6 jeux

TechAppropriationDebug

ProduitTests en PreprodDebug

16 Oct 2014Lancement

1er Déc 2014Explosion del’audience

BUGFB Mobile

BUGInternet Explorer

Page 19: Polymer en production : On a osé !

Bug Facebook Mobile

➔ 1er loading : OK➔ 2nd loading : Page blanche➔ Fonctionne ailleurs

➔ Outils de debug ◆ JSconsole.com◆ DevTools chrome

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.

KITKAT) {

WebView.setWebContentsDebuggingEnabled(true);

}

Page 20: Polymer en production : On a osé !

Euréka !

➔ Bug CORS : Certaines versions de webkit➔ Pull request sur webcomponentsjs

Page 21: Polymer en production : On a osé !

Code review / Debug

function foo () {

var container = this.parentElement;

if (!container) {

setTimeout(foo, 250);

} else {

… }

}

➔ #stagiaires

Page 22: Polymer en production : On a osé !

Bug IE = Facebook bashing

➔ Peu testé + Disclaimer cassé➔ Canaliser les utilisateurs IE (3%)➔ Fallback de certains jeux

Page 23: Polymer en production : On a osé !

Retombées

Page 24: Polymer en production : On a osé !

Erreurs commises

1. Prototype ≠ Produit2. Encadrement des Stagiaires 3. Code review tardive4. Phase de transfert trop courte5. Minimiser l’impact d’IE6. Ne pas briefer l’équipe Sales

Page 25: Polymer en production : On a osé !

Défi relevé !

➔ Décembre 2014

40%

Participations Polymer

Page 26: Polymer en production : On a osé !

Polymer 0.8 : "En route vers la production"

➔ 3 Versions ◆ polymer-micro◆ polymer-mini◆ polymer

I'm not going to lie, if you're building stuff with Polymer, the transition to 0.8 is going to hurt, bad. Michael Bleigh

Page 27: Polymer en production : On a osé !

Avant de vous lancer

1. Prenez du recul2. Définissez votre besoin3. Suivez l’activité du projet4. Estimez l’impact5. Préparez des alternatives6. Testez tout !

Page 28: Polymer en production : On a osé !

MERCIPS : On recrute !

Javascript DeveloperCDI, stage, contrat pro

Kontestapp.com/fr/jobs

Ecmascript 6➔ AngularJS ➔ NodeJS