O documento apresenta Joselito Júnior, um instrutor e palestrante sobre desenvolvimento offline e sem servidor ("no backend"). Ele discute conceitos como Offline First, armazenamento local e sincronização de dados, Service Workers e AppCache para criar aplicações que funcionam online e offline. O documento também fornece exemplos de código para acessar APIs sem servidor como Hoodie, Parse e Firebase.
2. Olá, meu nome
é Joselito Júnior
» Modelo e atriz
» Instrutor,
palestrante
» Vencedor de
hackathon
profissional
» Fundador do GDG
Recife
» Fã de Fórmula 1
» Apaixonado por
entender e resolver
31. Armazenamento
Sincronize ao invés de salvar!
» Se o usuário está online, envie e
sincronize com servidor
» Se não, salve localmente e sincronize
depois!
35. ServiceWorkers
É um Web Worker que tomou muito Whey.
Roda no background do navegador e não tem
acesso ao DOM.
36. ServiceWorkers
É um Web Worker que tomou muito Whey.
Roda no background do navegador e não tem
acesso ao DOM.
Rende outra talk inteira.
37. ServiceWorkers
É um Web Worker que tomou muito Whey.
Roda no background do navegador e não tem
acesso ao DOM.
Rende outra talk inteira.
Por exemplo, essa: Offline Web do jeito
certo com ServiceWorkers, Sérgio Lopes.
38. AppCache
Poderosissímo e um grande filho da p*ta.
<html manifest="offline.appcache">
O manifesto deve estar em todas as
páginas que você desejam que devem se
cacheadas.
41. AppCache
CACHE
Aquivos abaixo do cabeçalho CACHE (ou sem
cabeçalho, é a seção default) serão
armazenados na primeira vez que forem
acessados.
42. AppCache
NETWORK
Aqui que começa a confusão.
Arquivos listados aqui podem vir do
servidor se eles não estão no cache.
Na maioria dos casos, usa-se *, para
todas as páginas.
NETWORK:
*
43. AppCache
FALLBACK
Os arquivos na seção de fallback tem dois
"parâmetros". O primeiro, o arquivo
original (ou pasta), do servidor. O
segundo, o arquivo que vai substituir os
arquivos.
FALLBACK:
/ fallback.html
cardapio/pizzas/calabresa.jpg cardapio/pizza.jpg
cardapio/pizzas/ cardapio/pizza.jpg
44.
45. AppCache
Cuidados
» O cache tem prioridade ao que está no
servidor.
» O manifesto só será atualizado se o
conteúdo dele for alterado.
» Arquivos não cacheados nao vão carregar
em páginas cacheadas
» E mais: Application Cache is a
Douchebag, Jake Archibald.
67. Parse e Firebase
» Comerciais e mais robustos (BaaS)
» Armazenamento sob demanda
» Plugins
» Push (local) e outros serviços
68. API Parse
var user = new Parse.User();
user.set("username", "my name");
user.set("password", "my pass");
user.set("email", "email@example.com");
user.set("phone", "415-392-0202");
user.signUp(null, {
success: function(user) { ... },
error: function(user, error) { ... }
});
69. API Parse
var base64 =
"V29ya2luZyBhdCBQYXJzZSBpcyBncmVhdCE=";
var file = new Parse.File("myfile.txt",
{ base64: base64 });
70. API Parse
var parseFile = new
Parse.File("myfile.zzz", fileData,
"image/png");
parseFile.save().then(function() {
// Imagem salva
}, function(error) {
// Ou ocorreu um erro ou a imagem não
foi enviada ao Parse
});
71.
72. atwood's law
“Any application that can be written in
JavaScript, will eventually be written in
JavaScript.”
Jeff Atwood