SlideShare uma empresa Scribd logo
não sabia
que existiam
web apis
que você
provavelmente
@zenorocha
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
2008
2008
2009
2009
2010
2010
2011
2011
2012
2012
2013
2013
2014
2014
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
canvassvg
geolocation
local
storage
web
sockets
audio
video
drag &
drop
web rtc
page
visibility
Provê uma API que checa
se a aba atual está visível
ou não no navegador.
page visibility
window.addEventListener('visibilitychange', () => {
if (document.hidden) {
console.log('Tab is hidden');
}
else {
console.log('Tab is focused');
}
});
page visibility
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
window.addEventListener('visibilitychange', () => {
switch(document.visibilityState) {
case 'prerender':
console.log('Tab is pre-rendering');
break;
case 'hidden':
console.log('Tab is hidden');
break;
case 'visible':
console.log('Tab is focused');
break;
}
});
caniuse.com/#feat=pagevisibility
BROWSER
support
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
web
share
Permite que um site
compartilhe algo para um
determinado destino. Pode ser
um serviço de sistema, um
aplicativo nativo ou outro site.
web share
shareButton.addEventListener(‘click', () => {
navigator.share({
title: ‘Some Example’,
url: window.location.href
})
.then(console.log('Successful share’))
.catch(console.log(error));
});
web share
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
underdevelopm
ent
BROWSER
support
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
state
online
Expõe o estado atual de
disponibilidade da rede.
online state
console.log(navigator.onLine ? 'online' : 'offline')
online state
window.addEventListener('offline', networkStatus);
window.addEventListener('online', networkStatus);
function networkStatus(e) {
console.log(e.type);
}
online state
caniuse.com/#feat=online-status
BROWSER
support
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
let type = navigator.connection.type;
// ex: bluetooth, cellular, ethernet, wifi
let max = navigator.connection.downlinkMax;
// in megabits
network info
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
DEVICE
orientation
Expõe as coordenadas de
orientação física de um
dispositivo.
device orientation
device orientation
window.addEventListener('deviceorientation', (e) => {
console.log(‘Gamma:’, e.gamma);
console.log(‘Beta:’, e.beta);
console.log(‘Alpha:’, e.alpha);
});
device orientation
let logo = document.querySelector(‘img');
window.addEventListener('deviceorientation', (e) => {
let tiltLR = e.gamma;
let tiltFB = e.beta;
logo.style.transform = `rotate(${tiltLR}deg)
rotate3d(1,0,0, ${tiltFB * -1}deg)`;
});
caniuse.com/#feat=deviceorientation
BROWSER
support
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
VIBRATION
Provê acesso ao hardware
de vibração de dispositivos
móveis.
vibration
// Vibrate for 1 second
navigator.vibrate(1000);
// Vibrate with a pattern
navigator.vibrate([400, 300, 300, 200, 500]);
// Turn off vibration
navigator.vibrate(0);
VIBRATION
vibrate wait vibrate wait vibrate
// Super Mario
navigator.vibrate([125,75,125,275,200,275,125,75,125,27
5,200,600,200,600]);
// Star Wars
navigator.vibrate([500,110,500,110,450,110,200,110,170,
40,450,110,200,110,170,40,500]);
// Go Go Power Rangers
navigator.vibrate([150,150,150,150,75,75,150,150,150,15
0,450]);
VIBRATION
h!ps://goo.gl/bX4ZQv
caniuse.com/#feat=vibration
BROWSER
support
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
clipboard
copy&paste
Possibilita interação com o
clipboard do usuário
através de operações de
copiar, cortar e colar.
clipboard
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
// 1. User interaction is required
let button = document.querySelector('button');
button.addEventListener('click', () => {
select();
copy();
});
clipboard
// 2. Programmatically select an element
function select() {
let input = document.querySelector('input');
input.focus();
input.setSelectionRange(0, input.value.length);
}
clipboard
// 3. Copy selected element text
function copy() {
try {
document.execCommand('copy');
}
catch (err) {
console.error(err);
}
}
clipboard
document.addEventListener('copy', (e) => {
console.log(e.target.value);
});
document.addEventListener('cut', (e) => {
console.log(e.target.value);
});
document.addEventListener('paste', (e) => {
console.log(e.clipboardData.getData('text/plain'));
});
clipboard
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
caniuse.com/#feat=clipboard
BROWSER
support
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
light
ambient
Expõe dados do sensor
que capta a intensidade
de luz de um ambiente.
ambient light
window.addEventListener('devicelight', (e) => {
console.log(`${e.value} lux`);
});
ambient light
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
let sensor = new AmbientLightSensor();
sensor.start();
sensor.onchange = (e) => {
console.log(e.reading.illuminance);
};
sensor.stop();
ambient light sensor
BROWSER
caniuse.com/#feat=ambient-light
support
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
STATUS
battery
Permite que uma página
web acesse informações
sobre a bateria de um
dispositivo.
battery status
navigator.getBattery().then((battery) => {
console.log(`${battery.level * 100}%`);
battery.addEventListener('levelchange', () => {
console.log(`${this.level * 100}%`);
});
});
battery status
caniuse.com/#feat=ba!ery-status
BROWSER
support
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
WEBVR
Uma API experimental que
trás o mundo de Realidade
Virtual para web usando
Oculus Ri" ou Google
Cardboard por exemplo.
web VR
BROWSER
support
chromestatus.com/features#webvr
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
shape
detection
É capaz de detectar
diferentes formas em
imagens como rostos, códigos
de barras e até mesmo texto
em uma imagem.
shape detection
let faceDetector = new FaceDetector();
faceDetector.detect(image).then(faces => {
console.log(‘Faces found:’, faces.length);
}).catch((err) => {
console.error(err);
});
shape detection
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
BROWSER
support
underdevelopm
ent
onde
usar?
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
WEBassembly
WebAssembly, ou wasm, é
um novo formato binário
para desenvolvimento de
aplicações de baixo nível.
web assembly
underdevelopm
ent
BROWSER
support
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
gamepad
Permite que páginas web
se conectem com controles
de video game via USB.
gamepad
window.addEventListener('gamepadconnected', () => {
let gp = navigator.getGamepads()[0];
console.log(‘ID:’, gp.id);
console.log(‘Axes:’, gp.axes.length);
console.log(‘Buttons:’, gp.buttons.length);
});
gamepad
window.addEventListener('gamepadconnected', gameLoop);
function gameLoop() {
let gp = navigator.getGamepads()[0];
if (gp.buttons[0].pressed) {
console.log('X');
}
requestAnimationFrame(gameLoop);
}
game loop
caniuse.com/#feat=gamepad
BROWSER
support
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
web
components
templates
custom elements
shadow dom
html imports
progressive
web apps
service workers
push notifications
offline support
app manifest
background sync
web usb bluetooth
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
Where
the magic
happens
Your
comfort zone
obrigado
@zenorocha
muito

Mais conteúdo relacionado

PDF
JS Experience 2017 - Javascript Funcional
PDF
Armazenamentos offline-ap is-para-pwa
PDF
Ionic Reativo com RxJS e ngRx
PDF
Api usando Silex
PDF
Tracking.js
PDF
Evento Front End SP - Organizando o Javascript
PDF
Criando uma arquitetura de front-end do zero
PDF
Java script aula 02 - operadores
JS Experience 2017 - Javascript Funcional
Armazenamentos offline-ap is-para-pwa
Ionic Reativo com RxJS e ngRx
Api usando Silex
Tracking.js
Evento Front End SP - Organizando o Javascript
Criando uma arquitetura de front-end do zero
Java script aula 02 - operadores

Mais procurados (20)

PDF
Java script aula 05 - funções
PDF
Java script - funções
PDF
Java script aula 08 - formulários
PDF
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
PDF
Desafios do Desenvolvimento de Front-end em um e-commerce
PDF
Web Offline
PDF
Introdução ao framework CakePHP
PDF
Ionic 2/3 + Firebase
PDF
Aplicações rápidas para a Web com Django
PDF
Java script aula 10 - angularjs
KEY
Python 06
ODP
Php 07 Cakephp
PDF
Play Framework - FLISOL
KEY
Python 07
PPTX
PDF
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
PDF
Introdução à MEAN Stack
PDF
Http Servlet
PDF
Java script aula 09 - JQuery
PPT
Spring Capitulo 03
Java script aula 05 - funções
Java script - funções
Java script aula 08 - formulários
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Desafios do Desenvolvimento de Front-end em um e-commerce
Web Offline
Introdução ao framework CakePHP
Ionic 2/3 + Firebase
Aplicações rápidas para a Web com Django
Java script aula 10 - angularjs
Python 06
Php 07 Cakephp
Play Framework - FLISOL
Python 07
Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas
Introdução à MEAN Stack
Http Servlet
Java script aula 09 - JQuery
Spring Capitulo 03
Anúncio

Semelhante a JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam (20)

PDF
Tutorial.yii
PPTX
Arquitetura JavaScript Escalável da Netflix
PPTX
jQuery - Visão Geral
PDF
Wicket 2008
PDF
JavaScript e JQuery para Webdesigners
PDF
DevDay - O elo perdido: sincronizando webapps
PDF
Tutorial sobre Jquery
KEY
JQuery Alagoinhas Dev Day - UNEB
PPT
Mini Curso de jQuery Lambda3/Globalcode
PDF
Apresentação Phonegap
PPTX
Html dom, eventos, jquery
PPTX
Introdução ao jquery
PDF
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
PPTX
Simplificando o full stack - desenvolvimento web na prática
PPTX
Windows Azure 5/8 - Recursos adicionais do Windows Azure
PPTX
Desvendando as ferramentas e serviços para o desenvolvedor Android
PDF
Java e Cloud Computing
PDF
[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap
PPT
API Apontador
PPT
Html5 storage api
Tutorial.yii
Arquitetura JavaScript Escalável da Netflix
jQuery - Visão Geral
Wicket 2008
JavaScript e JQuery para Webdesigners
DevDay - O elo perdido: sincronizando webapps
Tutorial sobre Jquery
JQuery Alagoinhas Dev Day - UNEB
Mini Curso de jQuery Lambda3/Globalcode
Apresentação Phonegap
Html dom, eventos, jquery
Introdução ao jquery
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
Simplificando o full stack - desenvolvimento web na prática
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Desvendando as ferramentas e serviços para o desenvolvedor Android
Java e Cloud Computing
[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap
API Apontador
Html5 storage api
Anúncio

Mais de iMasters (20)

PPTX
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
PDF
Postgres: wanted, beloved or dreaded? - Fabio Telles
PPTX
Por que minha query esta lenta? - Suellen Moraes
PPTX
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
PDF
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
PPTX
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
PDF
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
PDF
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
PDF
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
PDF
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
PDF
Entendendo os porquês do seu servidor - Talita Bernardes
PDF
Backend performático além do "coloca mais máquina lá" - Diana Arnos
PPTX
Dicas para uma maior performance em APIs REST - Renato Groffe
PPTX
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
PDF
Quem se importa com acessibilidade Web? - Mauricio Maujor
PDF
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
PDF
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
PDF
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
PDF
Construindo aplicações mais confiantes - Carolina Karklis
PDF
Monitoramento de Aplicações - Felipe Regalgo
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
Postgres: wanted, beloved or dreaded? - Fabio Telles
Por que minha query esta lenta? - Suellen Moraes
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Entendendo os porquês do seu servidor - Talita Bernardes
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Dicas para uma maior performance em APIs REST - Renato Groffe
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
Quem se importa com acessibilidade Web? - Mauricio Maujor
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Construindo aplicações mais confiantes - Carolina Karklis
Monitoramento de Aplicações - Felipe Regalgo

Último (12)

PPTX
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
PPTX
TURMA modelo de modelo apresentação 4DE.pptx
PDF
CORPO, ALMA E ESPÍRITO cura inteiror.pdf
PDF
Metodologias ágeis - Slides - aulas 1 a 5.pdf
PDF
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
PDF
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
PDF
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
PDF
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
PDF
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
PPTX
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
PPTX
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
PDF
Certificado de Conclusão Jornada Inteligência Artificial
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
TURMA modelo de modelo apresentação 4DE.pptx
CORPO, ALMA E ESPÍRITO cura inteiror.pdf
Metodologias ágeis - Slides - aulas 1 a 5.pdf
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
Agosto-Lilas-Conscientizacao-e-Combate-a-Violencia-contra-a-Mulher.pdf
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
AULA DE HTML E CSS PARA INICIANTES EM INFORMÁTICA
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
Certificado de Conclusão Jornada Inteligência Artificial

JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam