Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configuração do Banco de dados Mobile #589

Closed
2 of 3 tasks
ericsonmoreira opened this issue Nov 30, 2021 · 5 comments · May be fixed by #734
Closed
2 of 3 tasks

Configuração do Banco de dados Mobile #589

ericsonmoreira opened this issue Nov 30, 2021 · 5 comments · May be fixed by #734
Assignees

Comments

@ericsonmoreira
Copy link
Contributor

ericsonmoreira commented Nov 30, 2021

Objetivo

Como desenvolvedor do iSUS
Quero ter configurado um DB mobile
Para ter um BD interno da aplicação funcionando em cada dispositivo dos usuários

Contexto

O RealmDB é um banco de dados extremamente robusto utilizado em aplicações mobile que precisam de uma grande flexibilidade com dados offline incluindo filtros, ordenação, relacionamentos, etc.

Outra opção é o WatermelonDB. WatermelonDB é uma nova maneira de lidar com dados do usuário em aplicativos Web, React Native e React. Ele é otimizado para criar aplicativos complexos em React Native, e o objetivo número um é o desempenho no mundo real.

Inicialmente pensamos em usar o RealmDB, mas para nossas necessidades, o WatermelonDB se encaixa melhor.

Nessa necessidade surge com a funcionalidade de gerenciamento das notificações que os usuários recebem em seus dispositivos. Inicialmente, vamos ter apenas um schema:

const NotificationSchema = {
  name: 'Notification',
  properties: {
    id: 'string', 
    title: 'string', // título da notificação
    description: 'string', // descrição
    cover: 'string?', // imagem
    readed: 'bool', //booleano para saber se a notificação foi lida ou não.
    visualized: 'bool', // booleano para saber se a notificação foi visualizada ou não
    createdAt: 'date', // data de criação 
  },
  primaryKey: 'id',
};

Escopo

  • Instalar a biblioteca
  • criar o esquema de notificações
  • criar CRUD das Notificações ( Criar, Atualizar, Deletar e Listar)

Observações

Documentação do RealmDB para React Native.
Documentação do WatermelonDB.

@ericsonmoreira
Copy link
Contributor Author

Hey team! Please add your planning poker estimate with ZenHub @janeteamaral @JefersonNSoares @Laysacunha

@ericsonmoreira
Copy link
Contributor Author

Categorias iSUS.png

@ericsonmoreira
Copy link
Contributor Author

Estamos avaliando o uso do WatermelonDB no lugar do RealmDB.

Justificativa: WatermelonDB já tem nativamente a funcionalidade de offlinefirst.

@ericsonmoreira
Copy link
Contributor Author

ericsonmoreira commented May 3, 2022

RealmDB vs. WatermelonDB

WatermelonDB

Prós

  • Relacional, usa SQL
  • Versionamento
  • Offline First (sincronização de dados)
  • Lazy Loading (carregamento por debaixo dos panos otimizado)

Contras

  • Ter um backend para buscar os dados (isso já temos)

RealmDB

Prós

  • Usa o MongoDB Realm, um DB próprio do Realm

Contras

  • Sem funcionalidade de sincronização nativa, somente via realm-js SDK
  • Mais usado para bancos de dados em nuvem proprietária da Mongo/Realm.

@ericsonmoreira ericsonmoreira changed the title Configuração do RealmDB Configuração do Banco de dados Mobile May 5, 2022
@ericsonmoreira
Copy link
Contributor Author

Atividade concluída. Porém, ainda não mergeada à develop. Esperando definição da estratégia de notificações.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants