Flutter Tip#4

Inspecione o estado do Riverpod direto no Flutter DevTools

Se você usa Riverpod, provavelmente já precisou descobrir por que um provider mudou de estado ou qual foi a sequência de atualizações que levou a um bug.

A boa notícia é que o Riverpod possui uma extensão oficial para o Flutter DevTools que permite visualizar todos os providers da aplicação em tempo real e até mesmo voltar no tempo para analisar estados anteriores.


O que é o Riverpod State Inspector?

O State Inspector é uma extensão integrada ao Flutter DevTools que mostra:

  • Todos os providers ativos da aplicação.
  • O estado atual de cada provider.
  • As dependências entre providers.
  • O histórico de alterações de estado (Time Travel).

Isso elimina a necessidade de espalhar print() pelo código apenas para entender o fluxo da aplicação.


Como Ativar e Usar

  1. Inicie o DevTools: Rode sua aplicação Flutter em modo de depuração (debug mode) e abra o Flutter DevTools pelo VS Code.
  2. Acesse a Aba Riverpod: No menu superior do DevTools, você verá uma aba dedicada chamada riverpod.
  3. Inspecione: Clique em qualquer provedor para abrir o painel lateral com os detalhes do estado atual, histórico de modificações e dependências.


Time Travel

Um dos recursos mais interessantes é o Time Travel.

Sempre que um provider muda de estado, o Riverpod registra essa alteração. Depois você pode navegar pelo histórico para visualizar exatamente como aquele provider estava em um momento anterior.

Imagine um fluxo como este:

Loading
   ↓
Authenticated
   ↓
Refreshing
   ↓
Expired

Com o Time Travel você pode selecionar qualquer um desses momentos e inspecionar o estado correspondente, facilitando muito a investigação de bugs.


Quando isso ajuda?

Esse recurso é especialmente útil para investigar problemas difíceis de reproduzir, como:

  • Um provider que mudou para um estado inesperado.
  • Um cache sendo atualizado no momento errado.
  • Fluxos de autenticação.
  • Estados assíncronos (AsyncValue).
  • Atualizações encadeadas entre providers.

Em vez de tentar reproduzir o problema várias vezes, você consegue analisar exatamente o que aconteceu.


Resultado

Para quem já utiliza o Riverpod, essa é uma daquelas funcionalidades que vale a pena conhecer.

Ela reduz o tempo gasto investigando bugs e torna muito mais fácil entender como o estado da aplicação evoluiu ao longo da execução.

Uma dica simples, mas que pode economizar horas de debug.

1 Curtida