38
Backbone, Marionnette et Polymer sont dans un bateau ... @cbalit

Backbone, marionnette et polymer sont dans un bateau

  • Upload
    sfeir

  • View
    409

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Backbone, marionnette et polymer sont dans un bateau

Backbone, Marionnette et Polymer sont dans un bateau ...

@cbalit

Page 2: Backbone, marionnette et polymer sont dans un bateau

Moi...

Cyril Balit Team Leader Front End

@cbalit

Page 3: Backbone, marionnette et polymer sont dans un bateau

CONTEXTE

Page 4: Backbone, marionnette et polymer sont dans un bateau

Stack existante: Backbone

Page 5: Backbone, marionnette et polymer sont dans un bateau

Des briques transverses: authentification

Page 6: Backbone, marionnette et polymer sont dans un bateau

Des besoins d’évolutions

Page 7: Backbone, marionnette et polymer sont dans un bateau

Objectifs

Page 8: Backbone, marionnette et polymer sont dans un bateau

Enrichir la stack existante

Page 9: Backbone, marionnette et polymer sont dans un bateau

Marionnette pour moins de Boilerplate

Page 10: Backbone, marionnette et polymer sont dans un bateau

Initialisation

Page 11: Backbone, marionnette et polymer sont dans un bateau

Views

Page 12: Backbone, marionnette et polymer sont dans un bateau

ET... ...

Page 13: Backbone, marionnette et polymer sont dans un bateau

Polymer pour plus de souplesse

Page 14: Backbone, marionnette et polymer sont dans un bateau

WEB COMPONENTS

HTMLIMPORTS

SHADOWDOM

TEMPLATES CUSTOMELEMENTS

Page 15: Backbone, marionnette et polymer sont dans un bateau

But ...

Page 16: Backbone, marionnette et polymer sont dans un bateau
Page 17: Backbone, marionnette et polymer sont dans un bateau

Polyfills ...

Page 18: Backbone, marionnette et polymer sont dans un bateau

Architecture

Page 19: Backbone, marionnette et polymer sont dans un bateau

<paper-checkbox></paper-checkbox>

<paper-input floatinglabel

label="Type only numbers... (floating)"

validate="^[0-9]*$"

error="Input is not a number!">

</paper-input>

Page 20: Backbone, marionnette et polymer sont dans un bateau

A simple container with a headersection and a content section

<core-header-panel>

<core-header-panel flex>

<core-toolbar>

<core-icon-button icon=“menu">

</core-icon-button>

<div>MY APP</div>

</core-toolbar>

<div class=“content”>…</div>

</core-header-panel>

MY APP

Page 21: Backbone, marionnette et polymer sont dans un bateau

<core-drawer-panel>

<core-drawer-panel>

<div drawer> Drawer panel... </div>

<div main> Main panel... </div>

</core-drawer-panel>

Page 22: Backbone, marionnette et polymer sont dans un bateau

LE CODE

Page 23: Backbone, marionnette et polymer sont dans un bateau

Notre composant Polymer

Page 24: Backbone, marionnette et polymer sont dans un bateau

Une mire d’authentification pré-connectée

<frf-login>

<frf-login loginurl=“/login"

logouturl=“/logout">

<span>C’est qui ?</span>

</frf-login>

Page 25: Backbone, marionnette et polymer sont dans un bateau

Architecture

frf-login

frf-user

frf-login-form

frf-confirm

html5-paper-input

frf-login-service

core-ajax

Page 26: Backbone, marionnette et polymer sont dans un bateau

API

Page 27: Backbone, marionnette et polymer sont dans un bateau

L’intégration avec marionnette ...

Page 28: Backbone, marionnette et polymer sont dans un bateau

Une vue dédiée, un élément html comme les autresui: {

$frfLogin: 'frf-login'},

events: {

'login-success frf-login': 'onLogin', 'logout-success frf-login': 'onLogout'},

initialize: function () {

userChannel.on(userChannel.EVENTS.ASK_LOGOUT, this.logout,this);

},

onLogin: function (e) {

this.ui.$frfLogin.hide(); var userDatas=this.ui.$frfLogin.get(0).getCurrentUser().toJSON(); userChannel.trigger(userChannel.EVENTS.USER_LOGIN,userDatas);

},

onLogout: function (e) {

userChannel.trigger(userChannel.EVENTS.USER_LOGOUT);

this.ui.$frfLogin.show();},

logout: function () {

this.ui.$frfLogin.get(0).logout();}

Page 29: Backbone, marionnette et polymer sont dans un bateau

Timeline

Page 30: Backbone, marionnette et polymer sont dans un bateau

ALORS ..

Page 31: Backbone, marionnette et polymer sont dans un bateau

Bah il ne nous a rien montré !!!

Page 32: Backbone, marionnette et polymer sont dans un bateau

LES OUTILS

Page 33: Backbone, marionnette et polymer sont dans un bateau

Bower

bower install --save Polymer/polymer

bower install --save Polymer/core-elements

bower install --save Polymer/paper-elements

Page 34: Backbone, marionnette et polymer sont dans un bateau

Yeoman

npm install -g generator-polymer

yo polymer (polymer:app)

yo polymer:el

yo polymer:seed

yo polymer:gh

Page 35: Backbone, marionnette et polymer sont dans un bateau

Webdriver IO

var webdriverio = require('webdriverio');

var options = { desiredCapabilities: { browserName:

'chrome' } };

webdriverio

.remote(options)

.init()

.url('http://www.google.com')

.title(function(err, res) {

console.log('Title was: ' + res.value);

})

.end();

Page 36: Backbone, marionnette et polymer sont dans un bateau

Web Components Tester

npm install -g web-component-tester

wtc

OU

bower install Polymer/web-component-tester --save

<script src="../../web-component-tester/browser.js"></script>

Page 37: Backbone, marionnette et polymer sont dans un bateau

An exemple

https://github.com/cbalit/re-captcha

Page 38: Backbone, marionnette et polymer sont dans un bateau

MERCI ...