Pressione enter para ver os resultados ou esc para cancelar.

Ciclo de Vida dos Widgets no Flutter

No Flutter quase tudo é widget, desde a aparência, os comportamentos e até mesmo o próprio aplicativo, e neste artigo vou te mostrar explicar melhor o que é um widget, além de explicar os tipos que existem.

 Imaginemos o Flutter é como um LEGO, cada pecinha que vai se encaixando na aplicação, podemos considerar um widget.


O que é um widget?

Imagine que um widget seja um template que tenha uma certa responsabilidade na aplicação, e que por trás de tudo isso o Flutter usa o template como uma camada para renderização no dispositivo.

Existem dois tipos de widget, e irei te explicar mais sobre eles abaixo.

Tipos de widgets no Flutter

Stateless

Esse tipo de widget não precisa se preocupar com o gerenciamento de estado, ou seja, ele não armazena valores que podem mudar ao decorrer do seu ciclo de vida. Sua função é se preocupar apenas com a apresentação dos dados na aplicação.

Stateful

Nesse tipo de widget temos um ciclo de vida importante para o funcionamento dinâmico da nossa aplicação. Os widgets do tipo stateful, nascem, cumprem seu papel e morrem.
Quando se usa o StatefulWidget, ele cria um objeto State, nesse objeto é onde todo o estado mutável do widget é guardado, precisamos usar o método setState para notificar que um estado interno foi alterado, e assim “reconstruir” o widget com os valores atualizados. 
Entender como funciona esse ciclo é crucial para o bom funcionamento e performance do seu aplicativo.

Na imagem abaixo, é mostrado como funciona a “linha do tempo” de um widget do tipo Stateful.

WidgetFonte

E dentro do Stateful ainda temos outros recursos, como:

InitState

O initState é chamado uma única vez no momento que o widget é inserido na árvore. Geralmente esse método é sobrescrito com @override quando é necessário inicializar propriedades, registrar uma stream, ou se conectar a um banco de dados, ou uma API.

Build

O build é o método que fica responsável pela construção da árvore de widgets do seu aplicativo, digamos que seja um método responsável pela renderização e que recebe o Context para ficar por dentro do estado da aplicação.

Existem diversas situações onde o método build pode ser chamado:

  • Após passar pelo initState, para a construção do widget;
  • Quando o widget precisa ser reconstruído;
  • Após usar o setState.
Dispose

O dispose é disparado quando o widget é removido permanentemente da árvore de widgets. Quando o widget estense o StatefulWidget, o método de descarte é chamado automaticamente quando a página é removida da pilha de navegação, mas você pode sobrescrever esse método para executar instruções adicionais.


Concluindo, entendemos que widgets nada mais são que “peças” que vamos encaixando durante o desenvolvimento do aplicativo, seja um componente visual ou comportamental. 

Quando entendemos isso no Flutter, fica mais fácil visualizar como um aplicativo é montado, a partir disso temos uma visão mais clara da árvore de widgets. Aproveita que já está por aqui e confira o post do Anderson sobre Gerência de Estados no Flutter, e até a próxima!