Ir al contenido

Guía de Flutter para novatos - Miguel Páramos

FAQ sobre Flutter pal que no tiene ni idea de Flutter | 2º DAM · PMDM

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 StatelessWidget o una clase donde todas sus variables sean final y 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.