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

Backbone, marionnette et polymer sont dans un bateau

Aug 06, 2015

Download

Technology

Sfeir
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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 ...