I widget test verificano la correttezza, ma non dicono nulla su quanto scorre fluida la tua UI. Una lista che perde frame o una transizione che va a scatti non fa fallire nessun test: se ne accorgono solo gli utenti.
In questo tutorial avanzato costruiamo una suite di performance test automatizzati basata su integration_test e IntegrationTestWidgetsFlutterBinding.watchPerformance. Impareremo a:
- registrare la timeline di uno scenario reale (scroll di una lista pesante);
- estrarre le metriche di
builderastertime dal file*.timeline_summary.json; - definire soglie di jank e far fallire la pipeline in caso di regressione;
- eseguire tutto su un device fisico/emulatore in profile mode dentro GitHub Actions.
Prerequisito: conoscenza di base di
integration_teste della pipeline di rendering (build → layout → paint → raster). I benchmark vanno sempre eseguiti in--profile, mai in debug: i tempi in debug sono inutilizzabili.