Cuándo conviene usar const en los constructores y cuándo no se puede usar
En Dart y Flutter, la palabra clave const en un constructor indica que todos sus campos son inmutables y se pueden calcular antes de ejecutar el programa (en tiempo de compilación). Comprender cuándo utilizar constructores constantes y cuándo no es posible hacerlo resulta fundamental para optimizar el rendimiento y el consumo de memoria.
¿Cuándo conviene usar const en un constructor?
Sección titulada «¿Cuándo conviene usar const en un constructor?»- Regla: Siempre que la clase sea un
StatelessWidgeto una clase donde todas sus variables seanfinaly no tenga un bloque de código ejecutable{ ... }. - Por qué: Si marcas el constructor como
const, Flutter puede reutilizar la misma instancia en memoria en lugar de crear un objeto nuevo en cada fotograma. Es la optimización de rendimiento número uno del framework.
class MiTarjeta extends StatelessWidget { // Widget inmutable sin estado final String titulo; // Propiedad de solo lectura obligatoria para constructores const const MiTarjeta({super.key, required this.titulo}); // Constructor constante válido: todos los campos son final} // Fin de la clase MiTarjeta¿Cuándo NO se puede o no conviene usar const?
Sección titulada «¿Cuándo NO se puede o no conviene usar const?»- Cuando alguna variable interna no sea
final(sea mutable). - Si el constructor instancia objetos que se calculan en tiempo de ejecución (por ejemplo,
DateTime.now()o una lista generada dinámicamente). - Si el constructor necesita un cuerpo
{ ... }con lógica imperativa.