Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arquitetura de Apps em Cenários Offline

Arquitetura de Apps em Cenários Offline

Apresentação feita na MobileConf 2015 - Rio de Janeiro

Gustavo Barbosa

May 30, 2015
Tweet

More Decks by Gustavo Barbosa

Other Decks in Programming

Transcript

  1. conectividade
 co.nec.ti.vi.da.de sf (conectivo+i+dade) Inform Capacidade de um dispositivo de

    se conectar com outros dispositivos e transferir informação.
  2. velocidade download (Mb/s) velocidade upload (Mb/s) latência (ms) estabilidade da

    rede (%) 1.3 0.4 719 76 0.8 0.3 689 74 0.6 0.3 658 81 0.3 0.2 695 78 fonte: http://opensignal.com/networks/
  3. 0 2 4 6 8 2011 2012 2013 2014 velocidade

    média geral: 2G, 3G, and 4G fonte: http://opensignal.com/networks/
  4. server client sending fetching Messages Calendar Photos Camera Weather Clock

    Maps Videos Notes Reminders Stocks Game Center VIRGIN 22% 4 21 PM :
  5. GET

  6. Abre a view Faz request Mostra loading Atualiza View Mensagem

    de erro Mensagem de erro créditos: Daniel Pfeiffer, Float Mobile Learning online offline sucesso erro cache
  7. Abre a view Faz request Mostra loading Pega dados no

    cache dados no cache? Salva dados no cache Mensagem de erro Pega dados do cache Mensagem de erro Atualiza view online offline acabou de verificar sucesso erro hit miss créditos: Daniel Pfeiffer, Float Mobile Learning
  8. Abre a view Faz request Mostra loading Pega dados no

    cache dados no cache? Salva dados no cache Mensagem de erro Pega dados do cache Mensagem de erro Atualiza view online offline acabou de verificar sucesso erro hit miss créditos: Daniel Pfeiffer, Float Mobile Learning
  9. Abre a view Faz request Mostra loading Pega dados no

    cache dados no cache? Salva dados no cache Mensagem de erro Pega dados do cache Mensagem de erro Atualiza view online offline acabou de verificar sucesso erro hit miss créditos: Daniel Pfeiffer, Float Mobile Learning
  10. @interface Photo : NSManagedObject @property (nonatomic) int16_t identifier; @property (nonatomic,

    retain) NSString *url; @property (nonatomic) BOOL published; @property (nonatomic) int16_t syncStatus; @end
  11. @implementation Photo @dynamic identifier; @dynamic url; @dynamic published; @dynamic syncStatus;

    - (void)markAsPublished { self.published = YES; self.syncStatus = SyncStatusNeedsSynced; } @end
  12. Tap em "Salvar" Salva local Salva no server Segue a

    vida Atualiza local .NeedsSynced .OK sucesso .NeedsSynced erro quando? quando?
  13. Tap na Lixeira Atualiza local Apaga no server Segue a

    vida de novo Apaga local .NeedsRemoved erro sucesso .NeedsRemoved
  14. Foto 1 alterada 1426791001 Foto 3 alterada 1426790981 Foto 2

    apagada 1426790914 Nova Foto 1426790883
  15. Nova Foto 1426790883 Host: http://my.webserver.com Path: /photo Method: POST Content-Type:

    application/json Headers: … { “title”: “Foto do pessoal na MobileConf 2015”, “caption”: “#zoamuito”, “image_url”: “http://my.cdn.com/bucket/photo.jpg" }