Successfully reported this slideshow.
Sincronização
Como resolver?

Renato Ferreira Soares
Vinicius Pilot Moleta
Por que sincronizar?
Sincronização: Como resolver?

Cenário

Aplicativo

Ambiente

Dados
Sincronização: Como resolver?

Online

Aplicativo

Consulta online de dados

Ambiente

Dados
Sincronização: Como resolver?

Online
• Dependência de conexão de dados
• Demora na resposta
• Cota 3G
Sincronização: Como resolver?

Replicação

Aplicativo

Ambiente

Replicação

Dados
Sincronização: Como resolver?

Replicação
• Consistência
• Eficiência do dispositivo
• Manutenção
Sincronização: Como resolver?

Sincronização

Aplicativo

Ambiente

Dados
Sincronização: Como resolver?

Cenário
D3

A3

D2

A2

Ambiente

Dados
Centralizados

A1

D1
Parece importante,
mas como eu faço?
Sincronização: Como resolver?

Polling
Aplicativo

Servidor
Sincronização: Como resolver?

Polling
• Uso ineficiente dos recursos
• Bateria
• Internet
• Sincronização perdidas
Como considerar tudo isso?
Sincronização: Como resolver?

SyncAdapter
• Framework Android
• Coordena sincronizações
• Uso eficiente de recursos
• Cen...
Sincronização: Como resolver?

Conta
• Necessidade de um tipo de conta
• Terceiro
• Própria
• Adicionar uma conta desse ti...
Sincronização: Como resolver?

Sincronização
• Lógica de transferência de dados
• Serviço para framework executar seu códi...
Sincronização: Como resolver?

Dados
• Content provider e base SQLite
• Content resolver
Sincronização: Como resolver?

SyncAdapter
Autenticação

Conta

Serviço de
Sincronização

Content Resolver

SyncAdapter
Im...
Então sempre devo utilizar
DEPENDE
somente o SyncAdapter?
Sincronização: Como resolver?

Utilização SyncAdapter
• Dados mais importantes que recursos
• Online
• Assíncrono
E quando o SyncAdapter irá
executar?
Sincronização: Como resolver?

Técnicas
Geração de Dados

Aplicativo

Servidor
• Requisições Periódicas
• Requisição Força...
Mas e se eu quiser que o
servidor informe quando
um dado foi modificado?
Sincronização: Como resolver?

Google Cloud Messaging
• Serviço mantido pelo Google
• Grátis
• Limite do tamanho da requis...
Sincronização: Como resolver?

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

Apli...
Sincronização: Como resolver?

Google Cloud Messaging
Entrega da mensagem
quando estiver
disponível.

Aplicativo

Google C...
Pode-se unir as técnicas?
Sincronização: Como resolver?

Google Cloud
Messaging

Geração de Dados

Aplicativo

Geração de Dados

Servidor
E o servidor?
Sincronização: Como resolver?

Servidor
• Muitas notificações ao dispositivo
• Grande volume de dados
• Dados desnecessári...
Sinconização: como resolver?
Sinconização: como resolver?
Upcoming SlideShare
Loading in …5
×

Sinconização: como resolver?

668 views

Published on

Palestra apresentada no AndroiDay 2013.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Sinconização: como resolver?

  1. 1. Sincronização Como resolver? Renato Ferreira Soares Vinicius Pilot Moleta
  2. 2. Por que sincronizar?
  3. 3. Sincronização: Como resolver? Cenário Aplicativo Ambiente Dados
  4. 4. Sincronização: Como resolver? Online Aplicativo Consulta online de dados Ambiente Dados
  5. 5. Sincronização: Como resolver? Online • Dependência de conexão de dados • Demora na resposta • Cota 3G
  6. 6. Sincronização: Como resolver? Replicação Aplicativo Ambiente Replicação Dados
  7. 7. Sincronização: Como resolver? Replicação • Consistência • Eficiência do dispositivo • Manutenção
  8. 8. Sincronização: Como resolver? Sincronização Aplicativo Ambiente Dados
  9. 9. Sincronização: Como resolver? Cenário D3 A3 D2 A2 Ambiente Dados Centralizados A1 D1
  10. 10. Parece importante, mas como eu faço?
  11. 11. Sincronização: Como resolver? Polling Aplicativo Servidor
  12. 12. Sincronização: Como resolver? Polling • Uso ineficiente dos recursos • Bateria • Internet • Sincronização perdidas
  13. 13. Como considerar tudo isso?
  14. 14. Sincronização: Como resolver? SyncAdapter • Framework Android • Coordena sincronizações • Uso eficiente de recursos • Centralizado para todos os aplicativos
  15. 15. Sincronização: Como resolver? Conta • Necessidade de um tipo de conta • Terceiro • Própria • Adicionar uma conta desse tipo • Autenticação na sincronização • Configurações
  16. 16. Sincronização: Como resolver? Sincronização • Lógica de transferência de dados • Serviço para framework executar seu código • Resultado para o framework • Configurações
  17. 17. Sincronização: Como resolver? Dados • Content provider e base SQLite • Content resolver
  18. 18. Sincronização: Como resolver? SyncAdapter Autenticação Conta Serviço de Sincronização Content Resolver SyncAdapter Implementação Servidor Content Provider SQLite
  19. 19. Então sempre devo utilizar DEPENDE somente o SyncAdapter?
  20. 20. Sincronização: Como resolver? Utilização SyncAdapter • Dados mais importantes que recursos • Online • Assíncrono
  21. 21. E quando o SyncAdapter irá executar?
  22. 22. Sincronização: Como resolver? Técnicas Geração de Dados Aplicativo Servidor • Requisições Periódicas • Requisição Forçada Dados Dados
  23. 23. Mas e se eu quiser que o servidor informe quando um dado foi modificado?
  24. 24. Sincronização: Como resolver? Google Cloud Messaging • Serviço mantido pelo Google • Grátis • Limite do tamanho da requisição A • Específico para notificações
  25. 25. Sincronização: Como resolver? Google Cloud Messaging Registrar o Dispositivo / Aplicativo em um projeto específico. Aplicativo Google Cloud Messaging A Registro ID Registro ID Servidor
  26. 26. Sincronização: Como resolver? Google Cloud Messaging Entrega da mensagem quando estiver disponível. Aplicativo Google Cloud Messaging Requisita que uma mensagem seja enviada. A Servidor
  27. 27. Pode-se unir as técnicas?
  28. 28. Sincronização: Como resolver? Google Cloud Messaging Geração de Dados Aplicativo Geração de Dados Servidor
  29. 29. E o servidor?
  30. 30. Sincronização: Como resolver? Servidor • Muitas notificações ao dispositivo • Grande volume de dados • Dados desnecessários

×