SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Globalcode – Open4education
Offline first
Como este requisito impacta seu projeto?
Gabriela P. Santos & Claudinei B. Junior
09 de junho de 2021 - TDC Connections
Globalcode – Open4education
Quem somos?
Gabriela Pereira dos Santos
Desenvolvedora Mobile e Estudante de Engenharia
Elétrica na Usp nas horas vagas. Sou coordenadora do
Flutter Girls, e tenho como missão incentivar mais
mulheres a entrarem na área da Tecnologia.
2
Gabriela
Desenvolvedora Mobile - Monitora
Globalcode – Open4education
Quem somos?
Claudinei Brito Junior
Bacharel em Ciência da Computação (UNIVEM -
Marília/SP) e Mestrando em Ciência da Computação
(Engenharia de Software - ICMC/USP). QA frustrado,
desenvolvedor mobile e techlead.
Apaixonado por pessoas, computação, desenvolvimento
mobile e aspirante a desenvolvedor backend.
3
Claudinei
TechLead - Monitora
Globalcode – Open4education
Offline first?
09 de junho de 2021 - TDC Connections 4
Globalcode – Open4education
Sua aplicação deve estar pronta para cenários sem
acesso à internet.
Situação real
5
Globalcode – Open4education
Realidade X Laboratório de testes
Presumir que a conexão de rede
é sempre rápida e estável é um
dos erros de desenvolvimento
mais comuns.
GIF
6
Globalcode – Open4education
O que é Offline first?
Offline first é uma abordagem para o desenvolvimento de
software em que os desenvolvedores criam os principais
recursos de um aplicativo para funcionar com ou sem
conexão com a Internet.
7
Globalcode – Open4education
Como funciona o Offline first?
8
Globalcode – Open4education
Quando utilizar Offline First?
Features/apps que não precisam de atualização constantes
e que não contenham dados sensíveis.
Exemplos:
● Redes sociais (WhatsApp, Instagram, Facebook)
● Streaming
● Gerenciamento de tarefas
9
Globalcode – Open4education
Quando não utilizar Offline First
● Troca de uma grande quantidade de dados entre o
servidor e cliente
● Aplicativos que exigem sincronização em tempo real
● Aplicativos com informações sensíveis
Exemplos
● Internet banking
● Corretora
● Compras
● Transporte
● etc...
10
Globalcode – Open4education
Prós x Contras e definição de
estratégia
09 de junho de 2021 - TDC Connections 11
Globalcode – Open4education
Tradeoffs
● Armazenamento em cache (cache grande)
● Grande massa de dados transferida no primeiro login
12
Globalcode – Open4education
Perguntas a se fazer para
traçar uma estratégia
● Quais features o usuário não poderá usar offline?
○ Ex: transações bancárias
● Quais ações da API podemos manter em uma fila offline para
serem processadas posteriormente?
○ Ações que o usuário pode fazer offline. Ex: Criar uma tarefa
● Quais dados devemos/podemos persistir offline no app?
○ Dados que não mudam constantemente e que não são sensíveis. Ex:
Informações do perfil x Saldo bancário
13
Globalcode – Open4education
Perguntas a se fazer para
traçar uma estratégia
● Como disponibilizar a informação offline?
○ WhatsApp X Spotify
● Como lidar com erros ao sincronizar ações?
○ Ex: Disponibilizar a opção do usuário sincronizar ações manualmente.
● Como mostrar para o usuário a ausência de conectividade?
● Como sincronizar ações offline?
○ Automática X ação do usuário
14
Globalcode – Open4education
Princípios, arquitetura e
bibliotecas
09 de junho de 2021 - TDC Connections 15
Globalcode – Open4education
Princípios
16
ID TodoTask UpdatedAt
1 Lavar carro 2021-06-01
12:54:00
2 Trocar óleo 2021-06-02
11:15:00
3 Agendar
veterinário
para o coffee
2021-06-05
16:15:00
ID TodoTask UpdatedAt
1 Lavar carro 2021-06-01
12:54:00
2 Trocar óleo 2021-06-02
11:15:00
3 Agendar
veterinário para
o coffee
2021-06-05
16:15:00
4 Treinar
apresentação
TDC
2021-06-05
18:45:00
LastUpdate 2020-01-01 00:00:00
Now 2021-06-05 18:00:00
LastUpdate 2021-06-05 18:00:00
Now 2021-06-06 08:00:00
ID TodoTask UpdatedAt
1 Lavar carro 2021-06-01
12:54:00
2 Trocar óleo 2021-06-02
11:15:00
3 Agendar
veterinário
para o Café
2021-06-06
09:00:00
4 Treinar
apresentação
TDC
2021-06-05
18:45:00
LastUpdate 2021-06-06 08:00:00
Now 2021-06-06 09:30:00
● Busca inteligente de dados (delta)
Dado novo
Dado atualizado
Data de criação do app
Globalcode – Open4education
Princípios
● UI que demonstre conectividade (ou não)
● Fila de ações a serem executadas quando online
17
Globalcode – Open4education
● Classe de decisão do
repositório
○ Local x online
18
Arquitetura e decisões
Leitura offline
Globalcode – Open4education
● Classes serializáveis
○ toJSON
○ fromJSON
19
Arquitetura e decisões
Leitura offline
Globalcode – Open4education
● Dados armazenados em banco local
○ SharedPreferences, noSQL, SQL...
● Busca inteligente
○ Busca apenas os dados atualizados desde a última busca
● Armazenamento seguro de dados
20
Arquitetura e decisões
Leitura offline
Globalcode – Open4education
● Classe de decisão
do repositório
○ Local x online
21
Arquitetura e decisões
Fila de tarefas offline
Globalcode – Open4education
● Payloads
serializáveis
○ toJSON
○ fromJSON
22
Arquitetura e decisões
Fila de tarefas offline
Globalcode – Open4education
● Dados armazenados em banco local
○ SharedPreferences, noSQL, SQL...
● Fila de ações
● Armazenamento seguro de dados
23
Arquitetura e decisões
Fila de tarefas offline
Globalcode – Open4education
24
Bibliotecas
● extended_image
○ Imagens cacheadas
○ https://pub.dev/packages/extended
_image
Globalcode – Open4education
25
Bibliotecas
● connectivity_plus
○ Identificação da conectividade do
usuário
○ https://pub.dev/packages/connectivi
ty_plus
Globalcode – Open4education
● flutter_secure_storage
○ armazenamento seguro de dados
○ https://pub.dev/packages/flutter_se
cure_storage
26
Bibliotecas
Globalcode – Open4education
Dificuldades e desafios
09 de junho de 2021 - TDC Connections 27
Globalcode – Open4education
Dificuldades e desafios
● Aplicar a abordagem durante o desenvolvimento do projeto
○ Trocar a roda com o carro andando
● Dificuldade com o plugin de conectividade
○ Bug com a lib connectivity
○ Utilização da lib connectivity_plus
28
Globalcode – Open4education
● Problemas com sincronização
○ Execução paralela de sincronização de dados e busca de dados novos
○ Busca / sincronização de dados ordenado
Dificuldades e desafios
29
Globalcode – Open4education
Isso é tudo, pessoal
09 de junho de 2021 - TDC Connections 30
Globalcode – Open4education
Agradecimentos
31
Monitora
Flutter Girls
Flutterando
Globalcode – Open4education
Bora conectar
32
Claudinei
TechLead - Monitora
https://www.linkedin.com/in/claudineibjr
https://www.linkedin.com/in/gabriela-pereira-do
s-santos-472365139/
gabriela.flutterdev@hotmail.com
Gabriela
Desenvolvedora mobile - Monitora
claudineibjr@hotmail.com
33

Mais conteúdo relacionado

Semelhante a TDC Connections - Offline first - Como este requisito impacta seu projeto?

Internet das Coisas e o Futuro da Internet
Internet das Coisas e o Futuro da InternetInternet das Coisas e o Futuro da Internet
Internet das Coisas e o Futuro da InternetAndre Peres
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começouJose Wilker
 
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Caio Moreno
 
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...tdc-globalcode
 
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio Pimenta
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio PimentaTDCSP2018 - Trilha Cloud - Redução de custo - Flávio Pimenta
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio PimentaFlávio Pimenta
 
Criando uma cultura data driven
Criando uma cultura data drivenCriando uma cultura data driven
Criando uma cultura data drivenGuilherme Brunhole
 
Low Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceLow Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceAmbiente Livre
 
Pentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesPentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesAmbiente Livre
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começouJose Wilker
 
RFA-0069_2019-07-21T111917_TDC_ArquiteturaCorporativa_SP_Arquitetura Corporat...
RFA-0069_2019-07-21T111917_TDC_ArquiteturaCorporativa_SP_Arquitetura Corporat...RFA-0069_2019-07-21T111917_TDC_ArquiteturaCorporativa_SP_Arquitetura Corporat...
RFA-0069_2019-07-21T111917_TDC_ArquiteturaCorporativa_SP_Arquitetura Corporat...ssuser4cf889
 
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudeCriando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudePablo Dall'Oglio
 
Cada vez que você diz sim para uma funcionalidade, você está adotando um filho
Cada vez que você diz sim para uma funcionalidade, você está adotando um filhoCada vez que você diz sim para uma funcionalidade, você está adotando um filho
Cada vez que você diz sim para uma funcionalidade, você está adotando um filhoMagno Santana Silva
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...Fulvio Mascara
 
Big Data e Data Science - Tecnologia e Mercado
Big Data e Data Science - Tecnologia e MercadoBig Data e Data Science - Tecnologia e Mercado
Big Data e Data Science - Tecnologia e MercadoHélio Silva
 

Semelhante a TDC Connections - Offline first - Como este requisito impacta seu projeto? (20)

Internet das Coisas e o Futuro da Internet
Internet das Coisas e o Futuro da InternetInternet das Coisas e o Futuro da Internet
Internet das Coisas e o Futuro da Internet
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começou
 
Plano Nacional de IoT e a Segurança Cibernética das Coisas
Plano Nacional de IoT e a Segurança Cibernética das CoisasPlano Nacional de IoT e a Segurança Cibernética das Coisas
Plano Nacional de IoT e a Segurança Cibernética das Coisas
 
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
 
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...
 
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio Pimenta
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio PimentaTDCSP2018 - Trilha Cloud - Redução de custo - Flávio Pimenta
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio Pimenta
 
Criando uma cultura data driven
Criando uma cultura data drivenCriando uma cultura data driven
Criando uma cultura data driven
 
Low Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceLow Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine Intelligence
 
Pentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesPentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data Lakes
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
Treinamento hadoop - dia1
Treinamento hadoop - dia1Treinamento hadoop - dia1
Treinamento hadoop - dia1
 
RFA-0069_2019-07-21T111917_TDC_ArquiteturaCorporativa_SP_Arquitetura Corporat...
RFA-0069_2019-07-21T111917_TDC_ArquiteturaCorporativa_SP_Arquitetura Corporat...RFA-0069_2019-07-21T111917_TDC_ArquiteturaCorporativa_SP_Arquitetura Corporat...
RFA-0069_2019-07-21T111917_TDC_ArquiteturaCorporativa_SP_Arquitetura Corporat...
 
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudeCriando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
 
Phonegap
PhonegapPhonegap
Phonegap
 
Cada vez que você diz sim para uma funcionalidade, você está adotando um filho
Cada vez que você diz sim para uma funcionalidade, você está adotando um filhoCada vez que você diz sim para uma funcionalidade, você está adotando um filho
Cada vez que você diz sim para uma funcionalidade, você está adotando um filho
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
Custos de dizer um Sim
Custos de dizer um SimCustos de dizer um Sim
Custos de dizer um Sim
 
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
TDCSP2019 - Trilha: Inteligência Artificial - Palestra: AI at the Edge - Plat...
 
Big Data e Data Science - Tecnologia e Mercado
Big Data e Data Science - Tecnologia e MercadoBig Data e Data Science - Tecnologia e Mercado
Big Data e Data Science - Tecnologia e Mercado
 
Data Science For Dummies From a Dummy
Data Science For Dummies From a DummyData Science For Dummies From a Dummy
Data Science For Dummies From a Dummy
 

Mais de Claudinei Brito Junior

Desenvolvimento de aplicativos móveis para Android utilizando Java - 2/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 2/3Desenvolvimento de aplicativos móveis para Android utilizando Java - 2/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 2/3Claudinei Brito Junior
 
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3Claudinei Brito Junior
 
Desenvolvimento de aplicativos móveis para Android utilizando Java - 3/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 3/3Desenvolvimento de aplicativos móveis para Android utilizando Java - 3/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 3/3Claudinei Brito Junior
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
 
WTDQS 2019 - Uma abordagem para localização de mutantes minimais e equivalent...
WTDQS 2019 - Uma abordagem para localização de mutantes minimais e equivalent...WTDQS 2019 - Uma abordagem para localização de mutantes minimais e equivalent...
WTDQS 2019 - Uma abordagem para localização de mutantes minimais e equivalent...Claudinei Brito Junior
 

Mais de Claudinei Brito Junior (6)

Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
 
Desenvolvimento de aplicativos móveis para Android utilizando Java - 2/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 2/3Desenvolvimento de aplicativos móveis para Android utilizando Java - 2/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 2/3
 
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 1/3
 
Desenvolvimento de aplicativos móveis para Android utilizando Java - 3/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 3/3Desenvolvimento de aplicativos móveis para Android utilizando Java - 3/3
Desenvolvimento de aplicativos móveis para Android utilizando Java - 3/3
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
WTDQS 2019 - Uma abordagem para localização de mutantes minimais e equivalent...
WTDQS 2019 - Uma abordagem para localização de mutantes minimais e equivalent...WTDQS 2019 - Uma abordagem para localização de mutantes minimais e equivalent...
WTDQS 2019 - Uma abordagem para localização de mutantes minimais e equivalent...
 

TDC Connections - Offline first - Como este requisito impacta seu projeto?

  • 1. Globalcode – Open4education Offline first Como este requisito impacta seu projeto? Gabriela P. Santos & Claudinei B. Junior 09 de junho de 2021 - TDC Connections
  • 2. Globalcode – Open4education Quem somos? Gabriela Pereira dos Santos Desenvolvedora Mobile e Estudante de Engenharia Elétrica na Usp nas horas vagas. Sou coordenadora do Flutter Girls, e tenho como missão incentivar mais mulheres a entrarem na área da Tecnologia. 2 Gabriela Desenvolvedora Mobile - Monitora
  • 3. Globalcode – Open4education Quem somos? Claudinei Brito Junior Bacharel em Ciência da Computação (UNIVEM - Marília/SP) e Mestrando em Ciência da Computação (Engenharia de Software - ICMC/USP). QA frustrado, desenvolvedor mobile e techlead. Apaixonado por pessoas, computação, desenvolvimento mobile e aspirante a desenvolvedor backend. 3 Claudinei TechLead - Monitora
  • 4. Globalcode – Open4education Offline first? 09 de junho de 2021 - TDC Connections 4
  • 5. Globalcode – Open4education Sua aplicação deve estar pronta para cenários sem acesso à internet. Situação real 5
  • 6. Globalcode – Open4education Realidade X Laboratório de testes Presumir que a conexão de rede é sempre rápida e estável é um dos erros de desenvolvimento mais comuns. GIF 6
  • 7. Globalcode – Open4education O que é Offline first? Offline first é uma abordagem para o desenvolvimento de software em que os desenvolvedores criam os principais recursos de um aplicativo para funcionar com ou sem conexão com a Internet. 7
  • 8. Globalcode – Open4education Como funciona o Offline first? 8
  • 9. Globalcode – Open4education Quando utilizar Offline First? Features/apps que não precisam de atualização constantes e que não contenham dados sensíveis. Exemplos: ● Redes sociais (WhatsApp, Instagram, Facebook) ● Streaming ● Gerenciamento de tarefas 9
  • 10. Globalcode – Open4education Quando não utilizar Offline First ● Troca de uma grande quantidade de dados entre o servidor e cliente ● Aplicativos que exigem sincronização em tempo real ● Aplicativos com informações sensíveis Exemplos ● Internet banking ● Corretora ● Compras ● Transporte ● etc... 10
  • 11. Globalcode – Open4education Prós x Contras e definição de estratégia 09 de junho de 2021 - TDC Connections 11
  • 12. Globalcode – Open4education Tradeoffs ● Armazenamento em cache (cache grande) ● Grande massa de dados transferida no primeiro login 12
  • 13. Globalcode – Open4education Perguntas a se fazer para traçar uma estratégia ● Quais features o usuário não poderá usar offline? ○ Ex: transações bancárias ● Quais ações da API podemos manter em uma fila offline para serem processadas posteriormente? ○ Ações que o usuário pode fazer offline. Ex: Criar uma tarefa ● Quais dados devemos/podemos persistir offline no app? ○ Dados que não mudam constantemente e que não são sensíveis. Ex: Informações do perfil x Saldo bancário 13
  • 14. Globalcode – Open4education Perguntas a se fazer para traçar uma estratégia ● Como disponibilizar a informação offline? ○ WhatsApp X Spotify ● Como lidar com erros ao sincronizar ações? ○ Ex: Disponibilizar a opção do usuário sincronizar ações manualmente. ● Como mostrar para o usuário a ausência de conectividade? ● Como sincronizar ações offline? ○ Automática X ação do usuário 14
  • 15. Globalcode – Open4education Princípios, arquitetura e bibliotecas 09 de junho de 2021 - TDC Connections 15
  • 16. Globalcode – Open4education Princípios 16 ID TodoTask UpdatedAt 1 Lavar carro 2021-06-01 12:54:00 2 Trocar óleo 2021-06-02 11:15:00 3 Agendar veterinário para o coffee 2021-06-05 16:15:00 ID TodoTask UpdatedAt 1 Lavar carro 2021-06-01 12:54:00 2 Trocar óleo 2021-06-02 11:15:00 3 Agendar veterinário para o coffee 2021-06-05 16:15:00 4 Treinar apresentação TDC 2021-06-05 18:45:00 LastUpdate 2020-01-01 00:00:00 Now 2021-06-05 18:00:00 LastUpdate 2021-06-05 18:00:00 Now 2021-06-06 08:00:00 ID TodoTask UpdatedAt 1 Lavar carro 2021-06-01 12:54:00 2 Trocar óleo 2021-06-02 11:15:00 3 Agendar veterinário para o Café 2021-06-06 09:00:00 4 Treinar apresentação TDC 2021-06-05 18:45:00 LastUpdate 2021-06-06 08:00:00 Now 2021-06-06 09:30:00 ● Busca inteligente de dados (delta) Dado novo Dado atualizado Data de criação do app
  • 17. Globalcode – Open4education Princípios ● UI que demonstre conectividade (ou não) ● Fila de ações a serem executadas quando online 17
  • 18. Globalcode – Open4education ● Classe de decisão do repositório ○ Local x online 18 Arquitetura e decisões Leitura offline
  • 19. Globalcode – Open4education ● Classes serializáveis ○ toJSON ○ fromJSON 19 Arquitetura e decisões Leitura offline
  • 20. Globalcode – Open4education ● Dados armazenados em banco local ○ SharedPreferences, noSQL, SQL... ● Busca inteligente ○ Busca apenas os dados atualizados desde a última busca ● Armazenamento seguro de dados 20 Arquitetura e decisões Leitura offline
  • 21. Globalcode – Open4education ● Classe de decisão do repositório ○ Local x online 21 Arquitetura e decisões Fila de tarefas offline
  • 22. Globalcode – Open4education ● Payloads serializáveis ○ toJSON ○ fromJSON 22 Arquitetura e decisões Fila de tarefas offline
  • 23. Globalcode – Open4education ● Dados armazenados em banco local ○ SharedPreferences, noSQL, SQL... ● Fila de ações ● Armazenamento seguro de dados 23 Arquitetura e decisões Fila de tarefas offline
  • 24. Globalcode – Open4education 24 Bibliotecas ● extended_image ○ Imagens cacheadas ○ https://pub.dev/packages/extended _image
  • 25. Globalcode – Open4education 25 Bibliotecas ● connectivity_plus ○ Identificação da conectividade do usuário ○ https://pub.dev/packages/connectivi ty_plus
  • 26. Globalcode – Open4education ● flutter_secure_storage ○ armazenamento seguro de dados ○ https://pub.dev/packages/flutter_se cure_storage 26 Bibliotecas
  • 27. Globalcode – Open4education Dificuldades e desafios 09 de junho de 2021 - TDC Connections 27
  • 28. Globalcode – Open4education Dificuldades e desafios ● Aplicar a abordagem durante o desenvolvimento do projeto ○ Trocar a roda com o carro andando ● Dificuldade com o plugin de conectividade ○ Bug com a lib connectivity ○ Utilização da lib connectivity_plus 28
  • 29. Globalcode – Open4education ● Problemas com sincronização ○ Execução paralela de sincronização de dados e busca de dados novos ○ Busca / sincronização de dados ordenado Dificuldades e desafios 29
  • 30. Globalcode – Open4education Isso é tudo, pessoal 09 de junho de 2021 - TDC Connections 30
  • 32. Globalcode – Open4education Bora conectar 32 Claudinei TechLead - Monitora https://www.linkedin.com/in/claudineibjr https://www.linkedin.com/in/gabriela-pereira-do s-santos-472365139/ gabriela.flutterdev@hotmail.com Gabriela Desenvolvedora mobile - Monitora claudineibjr@hotmail.com
  • 33. 33