Javascript ao Infinito e Além

Preview:

DESCRIPTION

Palestra dada no Tchêlinux Pelotas 2014 abordando algumas APIs promissoras e exemplos de aplicações utilizando-as

Citation preview

Javascript ao infinito e além

Rafael Specht da Silva@rafael_sps

Quem?

- Formado em Telecomunicações no IFSul- “Contribuidor” na Hack Thursday- Ex Eckert-Caine- Ex / Atual RBS

Javascript é uma linguagem bem legal, mas...

0.3 === 0.1 + 0.2 // false

// porque...

0.2 + 0.1 === 0.30000000000000004 // true

// exemplo by Douglas Crockford

Isso é quase engraçado...

Javascript é útil para …

… fazer relógios

… validar formulários

… AWESOMENESS

“Existem mais APIs entre o céu e a terra do que sonha vossa vã filosofia”

(talvez pra fazer o que já se fazia no desktop e/ou devices...)

WebSockets

Uma maneira de trocar informação em “tempo real”

SSE resolve(rá) o problema de “só receber”

LocalStorage

Armazena strings localmente sem incluí-las no cabeçalho HTTP como o Cookie

WebSockets + LocalStorage

- LocalStorage é comum para um domínio

- Então, permite trocar informações entre janelas/abas

- Logo, LocalStorage permite compartilhar informações recebidas pelo Socket entre janelas/abas

Network Information API

Porque nem sempre sabemos a situação da conexão do usuário…

Network Information API

var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;

bandwidth - estimativa da banda atual

metered - a banda do usuário pode sofrer limitações

Page Visibility API

Permite obter o status de visibilidade de um documento

(talk is cheap…)

Battery API

Battery API

Provê informações sobre a bateria do dispositivo do usuário

window.navigator.battery

Push State

Push State

Acesso ao histórico do browser

window.history

(talk is cheap...)

Web Audio API

Web Audio API

Acesso e manipulação de um contexto de áudio

Qual a diferença para a tag <audio>?

- Manipular propriedades do sinal de áudio- Possibilidade de adicionar ganho, filtros, etc- Manipular espacialização- etc

Oscillators

Podemos criar ondas:- sinusoidais- dentes-de-serra- triangulares- quadradas(demo)

Exemplos em produção

Muito útil para jogos e apps onde podemos melhorar a experiência e imersão

- Jogo “mano-a-mano” (link, github)- Guitarra HTML5 (link, github)

Release the Unicorns

Processamento de Áudio

Métodos como ‘createMediaStreamSource’ e ‘createScriptProcessor’ permitem manipular o áudio em tempo real.

Por que não fazer um pedal de guitarra?

(altamente inspirado pelas palestras do @almirfilho (link) e do @eshiota (link)

Obrigado!!@rafael_spsgithub.com/rssilvarafaelspdasilva@gmail.comfb.com/rafaelspdasilva