sinconização: como resolver?
DESCRIPTION
Palestra apresentada no AndroiDay 2013.TRANSCRIPT
SincronizaçãoComo resolver?
Renato Ferreira SoaresVinicius Pilot Moleta
Por que sincronizar?
CenárioSincronização: Como resolver?
AmbienteAplicativo Dados
OnlineSincronização: Como resolver?
AmbienteAplicativo DadosConsulta online de dados
Sincronização: Como resolver?
Online
• Dependência de conexão de dados
• Demora na resposta
• Cota 3G
ReplicaçãoSincronização: Como resolver?
AmbienteAplicativo Dados
Replicação
Sincronização: Como resolver?
Replicação
• Consistência
• Eficiência do dispositivo
• Manutenção
SincronizaçãoSincronização: Como resolver?
AmbienteAplicativo Dados
CenárioSincronização: Como resolver?
AmbienteA2
Dados Centralizados
D1D2 A1
D3
A3
Parece importante, mas como eu faço?
PollingSincronização: Como resolver?
Aplicativo
Servidor
Sincronização: Como resolver?
Polling
• Uso ineficiente dos recursos
• Bateria
• Internet
• Sincronização perdidas
Como considerar tudo isso?
SyncAdapterSincronização: Como resolver?
• Framework Android
• Coordena sincronizações
• Uso eficiente de recursos
• Centralizado para todos os aplicativos
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
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
DadosSincronização: Como resolver?
• Content provider e base SQLite
• Content resolver
SyncAdapterSincronização: Como resolver?
Autenticação Conta Serviço de Sincronização
Content Resolver SyncAdapterImplementação
Servidor
Content Provider
SQLite
Então sempre devo utilizar somente o SyncAdapter?DEPENDE
Utilização SyncAdapter
Sincronização: Como resolver?
• Dados mais importantes que recursos
• Online
• Assíncrono
E quando o SyncAdapter irá executar?
TécnicasSincronização: Como resolver?
Aplicativo
Dados
Geração de Dados
• Requisições Periódicas• Requisição Forçada
Dados
Servidor
Mas e se eu quiser que o servidor informe
quando um dado foi modificado?
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
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
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.
Pode-se unir as técnicas?
Sincronização: Como resolver?
Aplicativo
Geração de DadosGeração de Dados
Google Cloud Messaging
Servidor
E o servidor?
ServidorSincronização: Como resolver?
• Muitas notificações ao dispositivo
• Grande volume de dados
• Dados desnecessários