Top Banner
Construindo Apps Web/Mobile com Polymer e Web Components - JSday 2016 - Construindo Apps Web/Mobile com Polymer e Web Components - JSday Campina Grande 2016 -
78

Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Apr 12, 2017

Download

Software

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: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Construindo Apps Web/Mobile com Polymer e Web Components - JSday 2016 -

Construindo Apps Web/Mobile com Polymer e Web Components - JSday Campina Grande 2016 -

Page 2: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

+BuenoNepomuceno@buenonp

[email protected]

Page 3: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 4: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 5: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

meetup.com/gdg-campina-grande

facebook.com/gdgcgpb

Page 6: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

RoteiroWebComponentsPolymer

Page 7: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Web Components

Page 8: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

O que queremos resolver?

Page 9: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 10: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

http://drbl.in/esYL

Criar abasdevia ser fácil!

Page 11: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 12: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 13: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 14: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 15: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 16: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-tabs>

<paper-tab>KNOWLEDGE</paper-tab>

<paper-tab>HISTORY</paper-tab>

<paper-tab>FOOD</paper-tab>

</paper-tabs>

Menos código. Menos confusão.Web Components

Page 17: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

O que são os Web Components?

Page 18: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Elementos customizadosdefina novos elementos HTML/DOM

Page 19: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 20: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-tabs selected=“1”>

<paper-tab>Tab 1</paper-tab>

<paper-tab>Tab 2</paper-tab>

<paper-tab>Tab 3</paper-tab>

</paper-tabs>

declarativo, legível

HTML significativo

padrão de extensibilidade → reutilizável

Elementos cutomizadosDefinindo um novo HTML

Page 21: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Templates (Moldes)Nativos do lado cliente

Page 22: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<template>

<div class=“comment”>

<img src=“image.png”>

</div>

<script>...</script>

</template>

use DOM para produzir DOM

conteúdo é inerte até clonado/usado

HTML Templatesnativos do lado cliente

analisado, não renderizado

Page 23: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Shadow DOMDOM/CSS exclusivo

Page 24: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<video src=“foo.webm” controls></video>

Page 25: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<video src=“foo.webm” controls></video>

Na verdade Shadow DOM

@polymer #itshackademic

Page 26: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<video src=“foo.webm” controls></video>

Page 27: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Importação de HTMLCarregando web components

Page 28: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 29: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 30: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Elementos customizados (Custom Elements)Criação de novos elementos HTML e extensão de existentes

Templates (Moldes)Templatização nativa no browser

Shadow DOMCSS dentro de escopo!!! + DOM encapsulado

Importação de HTML (HTML Imports)Carrega definição de elementos customizados e recursos

Page 31: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Browser support 2016 - 1º Semestre

Page 32: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Polyfills Web Componentscom webcomponents.js

Page 33: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 34: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Browser support2016 - 1º Semestre (com Polymer)

Page 35: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Elementos

Page 36: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<ul><p>

<h1>

Page 37: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-button><paper-checkbox>

<neon -animated-pages>

Page 38: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

E se utilizarmos HTMLpara Web/Mobile ?

Page 39: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-icon-button>

<paper-fab>

<paper-drawer-panel>

<paper-input>

Page 40: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

http://bit.ly/1jkTo5c

paper-elements

Image: http://bit.ly/1mZjnTu

Page 41: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-toolbar>Container básico para controles como abas ou botões

MY APP

Page 42: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<link rel=“import”

href=“paper-toolbar.html”>

<paper-toolbar>Container básico para controles como abas ou botões

MY APP

Page 43: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-toolbar>

<span>MY APP</span>

</paper-toolbar>

<link rel=“import”

href=“paper-toolbar.html”>

<paper-toolbar>MY APP Container básico para controles

como abas ou botões

Page 44: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-toolbar>

<paper-icon-button icon=“menu”>

</paper-icon-button>

<span>MY APP</span>

</paper-toolbar>

<link rel=“import”

href=“paper-toolbar.html”>

<paper-toolbar>MY APP Container básico para controles

como abas ou botões

Page 45: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Container simples com cabeçalho e seção de conteúdo

<paper-header-panel> MY APP

<paper-header-panel flex>

<paper-toolbar>

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

</paper-icon-button>

<div>MY APP</div>

</paper-toolbar>

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

</paper-header-panel>

Page 46: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-header-panel> MY APP

<paper-header-panel flex>

<paper-toolbar>

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

</paper-icon-button>

<div>MY APP</div>

</paper-toolbar>

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

</paper-header-panel>

Container simples com cabeçalho e seção de conteúdo

Page 47: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-header-panel> MY APP

<paper-header-panel flex>

<paper-toolbar>

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

</paper-icon-button>

<div>MY APP</div>

</paper-toolbar>

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

</paper-header-panel>

Container simples com cabeçalho e seção de conteúdo

Page 48: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-header-panel>

<paper-header-panel flex>

<paper-toolbar>

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

</paper-icon-button>

<div>MY APP</div>

</paper-toolbar>

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

</paper-header-panel>

MY APP

Container simples com cabeçalho e seção de conteúdo

Page 49: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-header-panel mode=“scroll" flex>

<paper-toolbar>

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

</paper-icon-button>

<div>MY APP</div>

</paper-toolbar>

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

</paper-header-panel>

<paper-header-panel>

Toolbar com rolagem na página

Page 50: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Container responsivo que combina painéis esquerdo e direito e área principal de conteúdo

<paper-drawer-panel>

<paper-drawer-panel>

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

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

</paper-drawer-panel>

Page 51: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-drawer-panel>

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

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

</paper-drawer-panel>

<paper-drawer-panel>Container responsivo que combina painéis esquerdo e direito e área principal de conteúdo

Page 52: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-drawer-panel>

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

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

</paper-drawer-panel>

<paper-drawer-panel>Container responsivo que combina painéis esquerdo e direito e área principal de conteúdo

Page 53: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 54: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-input floatinglabel

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

allowed-pattern="^[0-9]*$"

error-message="Input is not a number!">

</paper-input>

Page 55: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-checkbox></paper-checkbox>

Page 56: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<div class=“card”>

<img src=“science.svg”>

<paper-ripple></paper-ripple>

</div>

Efeito de cor reativo que indica toque ou ação de mouse

<paper-ripple>

Page 57: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-material elevation=“5” animated>

<div class=“card”>...</div>

</paper-material>

Sombra dinâmica para efeito de profundidade e relacionamentos espaciais

<paper-material>

Page 58: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Estilos

Page 59: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-slider min=“0” max=“100”>

</paper-slider>

permite estilizar nós internos do shadow dom de um elemento

<style is=”custom-style”></style>

Page 60: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-slider min=“0” max=“100”>

</paper-slider>

<style is=”custom-style”></style>

<style is=“custom-style”>

--paper-slider-pin-color: #f4b400;

</style>

permite estilizar nós internos do shadow dom de um elemento

Page 61: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

html /deep/ paper-ripple {

background-color: #E91E63;

}

permite estilizar todos os comportamentos

/deep/

Page 62: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

com /deep/ vocêpode aplicar temas

source: ebidel.github.io/material-playground

Page 63: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

polymer-topeka.appspot.com

Page 64: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 65: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

polymer-project.org/1.0/

Page 66: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Não estamos sós

Page 67: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Mozilla Brick

Page 68: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<brick-appbar>

<brick-deck>

<brick-tabbar>

Page 69: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<paper-icon-button>

<x-instagram>

(not shown)

Page 70: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Web Componentspodem trabalhar juntos

Page 71: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Aprenda mais!

Page 72: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016
Page 73: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

polymer-project.org

Page 74: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

Compartilhe!

Page 75: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

customelements.io

Page 76: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

EXPLORE

Page 77: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<créditos: @darktears, Alexis Menard, Intel>

Page 78: Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016

<obrigado>