32

Sinconização: como resolver?

  • Upload
    dextra

  • View
    393

  • Download
    0

Embed Size (px)

DESCRIPTION

Palestra apresentada no AndroiDay 2013.

Citation preview

Page 1: Sinconização: como resolver?
Page 2: Sinconização: como resolver?

SincronizaçãoComo resolver?

Renato Ferreira SoaresVinicius Pilot Moleta

Page 3: Sinconização: como resolver?

Por que sincronizar?

Page 4: Sinconização: como resolver?

CenárioSincronização: Como resolver?

AmbienteAplicativo Dados

Page 5: Sinconização: como resolver?

OnlineSincronização: Como resolver?

AmbienteAplicativo DadosConsulta online de dados

Page 6: Sinconização: como resolver?

Sincronização: Como resolver?

Online

• Dependência de conexão de dados

• Demora na resposta

• Cota 3G

Page 7: Sinconização: como resolver?

ReplicaçãoSincronização: Como resolver?

AmbienteAplicativo Dados

Replicação

Page 8: Sinconização: como resolver?

Sincronização: Como resolver?

Replicação

• Consistência

• Eficiência do dispositivo

• Manutenção

Page 9: Sinconização: como resolver?

SincronizaçãoSincronização: Como resolver?

AmbienteAplicativo Dados

Page 10: Sinconização: como resolver?

CenárioSincronização: Como resolver?

AmbienteA2

Dados Centralizados

D1D2 A1

D3

A3

Page 11: Sinconização: como resolver?

Parece importante, mas como eu faço?

Page 12: Sinconização: como resolver?

PollingSincronização: Como resolver?

Aplicativo

Servidor

Page 13: Sinconização: como resolver?

Sincronização: Como resolver?

Polling

• Uso ineficiente dos recursos

• Bateria

• Internet

• Sincronização perdidas

Page 14: Sinconização: como resolver?

Como considerar tudo isso?

Page 15: Sinconização: como resolver?

SyncAdapterSincronização: Como resolver?

• Framework Android

• Coordena sincronizações

• Uso eficiente de recursos

• Centralizado para todos os aplicativos

Page 16: Sinconização: como resolver?

ContaSincronização: Como resolver?

• Necessidade de um tipo de conta

• Terceiro

• Própria

• Adicionar uma conta desse tipo

• Autenticação na sincronização

• Configurações

Page 17: Sinconização: como resolver?

SincronizaçãoSincronização: Como resolver?

• Lógica de transferência de dados

• Serviço para framework executar seu

código

• Resultado para o framework

• Configurações

Page 18: Sinconização: como resolver?

DadosSincronização: Como resolver?

• Content provider e base SQLite

• Content resolver

Page 19: Sinconização: como resolver?

SyncAdapterSincronização: Como resolver?

Autenticação Conta Serviço de Sincronização

Content Resolver SyncAdapterImplementação

Servidor

Content Provider

SQLite

Page 20: Sinconização: como resolver?

Então sempre devo utilizar somente o SyncAdapter?DEPENDE

Page 21: Sinconização: como resolver?

Utilização SyncAdapter

Sincronização: Como resolver?

• Dados mais importantes que recursos

• Online

• Assíncrono

Page 22: Sinconização: como resolver?

E quando o SyncAdapter irá executar?

Page 23: Sinconização: como resolver?

TécnicasSincronização: Como resolver?

Aplicativo

Dados

Geração de Dados

• Requisições Periódicas• Requisição Forçada

Dados

Servidor

Page 24: Sinconização: como resolver?

Mas e se eu quiser que o servidor informe

quando um dado foi modificado?

Page 25: Sinconização: como resolver?

A

Google Cloud Messaging

Sincronização: Como resolver?

• Serviço mantido pelo Google

• Grátis

• Limite do tamanho da requisição

• Específico para notificações

Page 26: Sinconização: como resolver?

A

Google Cloud Messaging

Sincronização: Como resolver?

Google Cloud Messaging

Aplicativo

Registrar o Dispositivo / Aplicativo em um projeto específico.

Registro ID

ServidorRegistro ID

Page 27: Sinconização: como resolver?

A

Google Cloud Messaging

Sincronização: Como resolver?

Servidor

Google Cloud Messaging Requisita que uma

mensagem seja enviada.

Aplicativo

Entrega da mensagem quando estiver

disponível.

Page 28: Sinconização: como resolver?

Pode-se unir as técnicas?

Page 29: Sinconização: como resolver?

Sincronização: Como resolver?

Aplicativo

Geração de DadosGeração de Dados

Google Cloud Messaging

Servidor

Page 30: Sinconização: como resolver?

E o servidor?

Page 31: Sinconização: como resolver?

ServidorSincronização: Como resolver?

• Muitas notificações ao dispositivo

• Grande volume de dados

• Dados desnecessários

Page 32: Sinconização: como resolver?