In Flutter tutto è un widget: testi, bottoni, padding e persino l'app stessa. Ma non tutti i widget sono uguali: alcuni descrivono una porzione di interfaccia che non cambia mai (StatelessWidget), altri devono poter cambiare aspetto nel tempo in risposta a un tocco, a un dato che arriva dalla rete o al passare di un timer (StatefulWidget).
Capire questa distinzione — e sapere quando e come chiamare setState() — è il passaggio più importante per chi inizia con Flutter. È anche la fonte dei dubbi più frequenti: perché la mia UI non si aggiorna?, perché il valore torna sempre a zero?, dove dichiaro le variabili?
In questo tutorial costruiremo passo passo una piccola app che parte da un widget statico e arriva a un contatore interattivo con controlli abilitati/disabilitati, imparando lungo la strada:
- la differenza concreta tra
StatelessWidgeteStatefulWidget; - il ruolo della classe
Statee del metodobuild(); - come funziona
setState()e cosa succede realmente quando lo chiami; - come passare dati da un widget padre a un figlio con i parametri del costruttore;
- gli errori più comuni (
setStatechiamato dopodispose, variabili dichiarate nel posto sbagliato, logica pesante dentrosetState).
Serve solo un progetto Flutter appena creato con flutter create e qualche minuto di tempo.