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