SlideShare uma empresa Scribd logo
Construindo Apps Web/Mobile com Polymer e Web Components
- JSday 2016 -
Construindo Apps Web/Mobile com Polymer e Web Components
- JSday Campina Grande 2016 -
+BuenoNepomuceno
@buenonp
buenonp@gmail.com
meetup.com/gdg-campina-grande
facebook.com/gdgcgpb
Roteiro
WebComponents
Polymer
Web Components
O que queremos resolver?
http://drbl.in/esYL
Criar abas
devia ser fácil!
<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
O que são os Web Components?
Elementos customizados
defina novos elementos HTML/DOM
<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
HTMLsignificativo
padrão de extensibilidade → reutilizável
Elementos cutomizados
Definindo um
novo HTML
Templates (Moldes)
Nativos do lado cliente
<template>
<div class=“comment”>
<img src=“image.png”>
</div>
<script>...</script>
</template>
use DOM para produzir DOM
conteúdo é inerte até clonado/usado
HTML Templates
nativos do lado cliente
analisado, não renderizado
Shadow DOM
DOM/CSS exclusivo
<video src=“foo.webm” controls></video>
<video src=“foo.webm” controls></video>
Na verdade Shadow DOM
@polymer #itshackademic
<video src=“foo.webm” controls></video>
Importação de HTML
Carregando web components
Elementos customizados (Custom Elements)
Criação de novos elementos HTML e extensão de existentes
Templates (Moldes)
Templatização nativa no browser
Shadow DOM
CSS dentro de escopo!!! + DOM encapsulado
Importação de HTML (HTML Imports)
Carrega definição de elementos customizados e recursos
Browser support
2016 - 1º Semestre
Polyfills Web Components
com webcomponents.js
Browser support
2016 - 1º Semestre (com Polymer)
Elementos
<ul>
<p>
<h1>
<paper-button>
<paper-checkbox>
<neon -animated-pages>
E se utilizarmos HTML
para Web/Mobile ?
<paper-icon-button>
<paper-fab>
<paper-drawer-panel>
<paper-input>
http://bit.ly/1jkTo5c
paper-elements
Image: http://bit.ly/1mZjnTu
<paper-toolbar>
Container básico para controles
como abas ou botões
MY APP
<link rel=“import”
href=“paper-toolbar.html”>
<paper-toolbar>
Container básico para controles
como abas ou botões
MY APP
<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
<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
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>
<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
<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
<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
<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
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>
<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
<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
<paper-input floatinglabel
label="Type only numbers... (floating)"
allowed-pattern="^[0-9]*$"
error-message="Input is not a number!">
</paper-input>
<paper-checkbox></paper-checkbox>
<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>
<paper-material elevation=“5” animated>
<div class=“card”>...</div>
</paper-material>
Sombra dinâmica para efeito de
profundidade e relacionamentos
espaciais
<paper-material>
Estilos
<paper-slider min=“0” max=“100”>
</paper-slider>
permite estilizar nós
internos do shadow dom
de um elemento
<style is=”custom-style”></style>
<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
html /deep/ paper-ripple {
background-color: #E91E63;
}
permite estilizar todos
os comportamentos
/deep/
com /deep/ você
pode aplicar temas
source: ebidel.github.io/material-playground
polymer-topeka.appspot.com
polymer-project.org/1.0/
Não estamos sós
Mozilla Brick
<brick-appbar>
<brick-deck>
<brick-tabbar>
<paper-icon-button>
<x-instagram>
(not shown)
Web Components
podem trabalhar
juntos
Aprenda mais!
polymer-project.org
Compartilhe!
customelements.io
EXPLORE
<créditos: @darktears, Alexis Menard, Intel>
<obrigado>

Mais conteúdo relacionado

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

04 02 novos elementos
04 02 novos elementos04 02 novos elementos
04 02 novos elementos
Vasco Ferreira
 
Como montar uma App em diversas resoluções de tela
Como montar uma App em diversas resoluções de telaComo montar uma App em diversas resoluções de tela
Como montar uma App em diversas resoluções de tela
Microsoft Mobile Developer
 
Web components: mais simples e produtivo com polymer!
Web components: mais simples e produtivo com polymer!Web components: mais simples e produtivo com polymer!
Web components: mais simples e produtivo com polymer!
Andrew Willard
 
Organizando a casa
Organizando a casaOrganizando a casa
Organizando a casa
Josino Rodrigues
 
Organizandoacasa 120316203302-phpapp02
Organizandoacasa 120316203302-phpapp02Organizandoacasa 120316203302-phpapp02
Organizandoacasa 120316203302-phpapp02
Fernanda Prezotto
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
igorpimentel
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)
Kaoru Hatake
 
HTML & CSS - Aula 2
HTML & CSS - Aula 2HTML & CSS - Aula 2
HTML & CSS - Aula 2
lucampos_si
 
Angular js
Angular jsAngular js
Angular js
Andre Junqueira
 
Html acessivel - Um guia rápido para melhorar a acessibilidade das suas págin...
Html acessivel - Um guia rápido para melhorar a acessibilidade das suas págin...Html acessivel - Um guia rápido para melhorar a acessibilidade das suas págin...
Html acessivel - Um guia rápido para melhorar a acessibilidade das suas págin...
Centro Web
 
HTML Acessível
HTML AcessívelHTML Acessível
HTML Acessível
Reinaldo Ferraz
 
Aplicações móveis com j query mobile
Aplicações móveis com j query mobileAplicações móveis com j query mobile
Aplicações móveis com j query mobile
Rondinelli Mesquita
 
Angular 2
Angular 2Angular 2
Angular 2
Loiane Groner
 
00 a linguagem html
00 a linguagem html00 a linguagem html
00 a linguagem html
Vasco Ferreira
 
HTML - aula 1
HTML - aula 1HTML - aula 1
HTML - aula 1
lucampos_si
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
Pablo Dall'Oglio
 
Workshop Magento
Workshop MagentoWorkshop Magento
Workshop Magento
Ari Stopassola Junior
 
Comunidades Baseadas Em Subsites
Comunidades Baseadas Em SubsitesComunidades Baseadas Em Subsites
Comunidades Baseadas Em Subsites
alessandrolandim
 
Angular JS, você precisa conhecer
Angular JS, você precisa conhecerAngular JS, você precisa conhecer
Angular JS, você precisa conhecer
meet2Brains
 
Tutorial sobre Bootstrap
Tutorial sobre BootstrapTutorial sobre Bootstrap
Tutorial sobre Bootstrap
Ivo Calado
 

Semelhante a Construindo apps web mobile com polymer - jsday campina grande - 23 de abril de 2016 (20)

04 02 novos elementos
04 02 novos elementos04 02 novos elementos
04 02 novos elementos
 
Como montar uma App em diversas resoluções de tela
Como montar uma App em diversas resoluções de telaComo montar uma App em diversas resoluções de tela
Como montar uma App em diversas resoluções de tela
 
Web components: mais simples e produtivo com polymer!
Web components: mais simples e produtivo com polymer!Web components: mais simples e produtivo com polymer!
Web components: mais simples e produtivo com polymer!
 
Organizando a casa
Organizando a casaOrganizando a casa
Organizando a casa
 
Organizandoacasa 120316203302-phpapp02
Organizandoacasa 120316203302-phpapp02Organizandoacasa 120316203302-phpapp02
Organizandoacasa 120316203302-phpapp02
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)
 
HTML & CSS - Aula 2
HTML & CSS - Aula 2HTML & CSS - Aula 2
HTML & CSS - Aula 2
 
Angular js
Angular jsAngular js
Angular js
 
Html acessivel - Um guia rápido para melhorar a acessibilidade das suas págin...
Html acessivel - Um guia rápido para melhorar a acessibilidade das suas págin...Html acessivel - Um guia rápido para melhorar a acessibilidade das suas págin...
Html acessivel - Um guia rápido para melhorar a acessibilidade das suas págin...
 
HTML Acessível
HTML AcessívelHTML Acessível
HTML Acessível
 
Aplicações móveis com j query mobile
Aplicações móveis com j query mobileAplicações móveis com j query mobile
Aplicações móveis com j query mobile
 
Angular 2
Angular 2Angular 2
Angular 2
 
00 a linguagem html
00 a linguagem html00 a linguagem html
00 a linguagem html
 
HTML - aula 1
HTML - aula 1HTML - aula 1
HTML - aula 1
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Workshop Magento
Workshop MagentoWorkshop Magento
Workshop Magento
 
Comunidades Baseadas Em Subsites
Comunidades Baseadas Em SubsitesComunidades Baseadas Em Subsites
Comunidades Baseadas Em Subsites
 
Angular JS, você precisa conhecer
Angular JS, você precisa conhecerAngular JS, você precisa conhecer
Angular JS, você precisa conhecer
 
Tutorial sobre Bootstrap
Tutorial sobre BootstrapTutorial sobre Bootstrap
Tutorial sobre Bootstrap
 

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