Offline First
Em aplicações web
Sou Front End Developer na Stone Pagamentos/ MundiPagg, graduando de Sistema da Informação na Universidade Unigranrio e Organizador do GDG Duque de Caxias, além de ser apaixonado por tecnologias web.
@lucasktrindade
Web Estática
Durante muitos anos desenvolvíamos aplicações web estáticas sem comunicação com servidor.
Web Interativa
E lá em 2004, o Google lançou o Gmail e o Maps com o que chamamos de AJAX para fazer requisições dinâmicas.
Estática x Interativa
Benefícios do AJAX
- conteúdo dinâmico e interação com o DOM
- comunicação com o servidor, utilizando JSON,XML e etc.
- dados assíncronos usando XMLHttpRequest
- e o Javascript para dar bind dos dados com o DOM
2006
2006
2010
2010
2006
2013
Mas por quê pensar offline?
Além de melhorar a experiência do usuário.
+ de 90%
da população Brasileira possui um celular.
~ 78% dos
usuários acessam diariamente a internet pelo celular
A conexão móvel é instável...
Seu usuário pode passar por um túnel, estar no metrô e etc. Isso acontece principalmente em cidades grandes.
Beleza, mas...
O quê devo fazer?
"DEVEMOS PARAR DE CONSTRUIR APLICAÇÕES WEB MOBILE PENSANDO EM DESKTOP, QUE POSSUI RÁPIDA CONEXÃO E PEQUENAS PROBLEMAS DE CONEXÃO."
Como devo fazer isso então?
-
os arquivos do aplicativo – JavaScript, CSS e fontes, além de outros recursos necessários (como imagens) já foram baixados.
-
seu aplicativo pode salvar e sincronizar (de forma opcional) pequenas quantidades de dados.
- seu aplicativo pode detectar mudanças na conectividade.
Algumas regras para seguir:
-
use dados locais sempre que possível
-
separe UI (User Interface) dos dados da sua aplicação
-
suponha que seu aplicativo pode ser fechado a qualquer momento.
-
teste seu aplicativo cuidadosamente.
Offline Workflow
Application
Cache API
Com AppCache API:
-
navegação offline
- velocidade
- redução de carga do servidor
Porém, entretanto, contudo...
O AppCache tinha alguns problemas.
Service
Workers
Ciclo de vida
Estratégias para Cache
Cache and Update
Cache, Update and Refresh
Embedded Fallback
Sync local com servidor
Bancos que podemos usar:
Cloud Firestore
Cloud Firestore:
-
flexível
-
atualizações em tempo real
-
suporte offline para web
Não tem mais desculpa...
Você consegue fazer sua aplicação funcionar offline!
OBRIGADO!
@lucasktrindade
Offline First
By Lucas Trindade
Offline First
Talk about offline first in web applications.
- 384