1
resposta

[Dúvida] Persistência de dados e utilização da Store

Estou desenvolvendo um app complexo e q tem uma grande quantidade de telas e fluxos. Logo de cara vi a necessidade de implementar uma arquitetura para melhor organizacao do projeto e acabei utilizado o MVC. Porém como havia dito, o app tera muitas telas e essas telas serão construidas marjoritariamente por dados q virão em requisições ao meu backend. Com isso percebi que alguns dados são utilizados de forma repetida em alguns fluxos de telas então acabei implementando uma Store para que esses dados fossem acessiveis em qualquer momento da app e que tbm pudessem ser modificados em qualquer momento, até pra tentar diminuir a quantidade de requisicoes desnecessarias.

Gostaria muito de saber quais as melhores praticas para trabalhar com esses dados?

1 resposta

Olá, Raphael.

Tudo bem?

Muito obrigado por compartilhar a sua dúvida com a gente!

A utilização de uma Store para gerenciar o estado global é uma ótima escolha, especialmente em aplicações com muitas telas e fluxos complexos igual você comentou. Veja algumas melhores práticas que podem te ajudar a trabalhar com esses dados de forma eficiente:

  1. Gerenciamento de Estado:

    • Provider: Útil para gerenciamento de estado e injeção de dependências de forma eficiente.
    • Riverpod: Evolução do Provider com melhorias de tipagem e performance.
    • Bloc/Cubit: Focado em separar a lógica de negócios da interface, ideal para projetos maiores.
  2. Arquitetura Limpa:

    • Clean Architecture: Separar a lógica de apresentação, domínio e dados para facilitar manutenção e testes.
    • Modularização: Divida o app em módulos para melhor organização e reutilização de código.
  3. Cache e Persistência:

    • SharedPreferences/Sqflite: Para armazenamento de dados simples e local.
    • Hive: Banco de dados local rápido e eficiente para persistência de dados.
    • Dio/Retrofit: Para requisições HTTP com cache integrado.
  4. Gerenciamento de Requisições:

    • Debouncing: Evitar múltiplas requisições seguidas desnecessárias.
    • Pagination: Carregar dados de forma paginada para melhorar a performance e experiência do usuário.
  5. Armazenamento em Store:

    • Use um gerenciador de estado robusto como Provider ou Riverpod para armazenar e acessar dados facilmente em qualquer lugar do app.
    • Notifier/ChangeNotifier: Para notificações eficientes de mudanças de estado.
  6. Boas Práticas Gerais:

    • DRY (Don't Repeat Yourself): Reutilize código sempre que possível.
    • SOLID Principles: Mantenha o código limpo e modular.
    • Teste: Escreva testes unitários e de integração para garantir a funcionalidade do app.

Essas práticas ajudarão a manter seu app organizado, eficiente e fácil de manter. Tentei achar uma forma de compartilhas essas informações, no caso escolhi por essa de tópicos em lista, espero que consiga entender e que possa te ajudar de alguma forma.

Valeu Raphael. Qualquer dúvida manda aqui.

Bons estudos.