Guía Completa sobre Enum y Enum Avanzados en Flutter

Domina el uso de enumeraciones en Flutter y Dart. Desde conceptos básicos hasta técnicas avanzadas, aprende a crear código más limpio y mantenible.

Alberto-Guaman
2024-12-22
10 min
Flutter Enum Dart Programación
Compartir:
Guía Completa sobre Enum y Enum Avanzados en Flutter

¿Quieres escribir código más claro y seguro en Flutter?
¡Los enums son tu mejor aliado para representar estados, opciones y más!


¿Qué es un Enum en Dart/Flutter?

Un enum (enumeración) es un tipo especial que permite definir un conjunto de valores constantes y nombrados. Son ideales para representar estados, opciones de menú, roles de usuario, etc.


Ejemplo básico de Enum

enum EstadoPedido {
  pendiente,
  procesando,
  enviado,
  entregado,
  cancelado,
}

void main() {
  EstadoPedido estado = EstadoPedido.procesando;
  print(estado); // EstadoPedido.procesando
}

Ventajas de usar Enum

  • Código más legible y seguro.
  • Evita errores por strings o números mágicos.
  • Facilita el uso de switch y validaciones.

Usando Enum en un Widget Flutter

enum Filtro { todos, completados, pendientes }

class FiltroTareas extends StatelessWidget {
  final Filtro filtroSeleccionado;
  final ValueChanged<Filtro> onFiltroCambiado;

  FiltroTareas({required this.filtroSeleccionado, required this.onFiltroCambiado});

  @override
  Widget build(BuildContext context) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: Filtro.values.map((filtro) {
        return Padding(
          padding: const EdgeInsets.symmetric(horizontal: 8.0),
          child: ChoiceChip(
            label: Text(filtro.name),
            selected: filtro == filtroSeleccionado,
            onSelected: (_) => onFiltroCambiado(filtro),
          ),
        );
      }).toList(),
    );
  }
}

Métodos útiles y propiedades de Enum (Dart 2.17+)

  • .values: Lista de todos los valores del enum.
  • .name: Nombre del valor como string.
  • .index: Posición del valor (0, 1, 2…)
for (var estado in EstadoPedido.values) {
  print('${estado.name} - ${estado.index}');
}

Enum con métodos y propiedades personalizadas (Dart 2.17+)

Puedes agregar getters y métodos a tus enums:

enum Prioridad {
  baja,
  media,
  alta;

  String get descripcion {
    switch (this) {
      case Prioridad.baja:
        return 'Baja';
      case Prioridad.media:
        return 'Media';
      case Prioridad.alta:
        return 'Alta';
    }
  }
}

void main() {
  Prioridad p = Prioridad.alta;
  print(p.descripcion); // Alta
}

Enum con valores asociados (Dart 3.0+)

Desde Dart 3, puedes asociar valores a los enums:

enum RolUsuario {
  admin('Administrador'),
  editor('Editor'),
  lector('Lector');

  final String descripcion;
  const RolUsuario(this.descripcion);
}

void main() {
  RolUsuario rol = RolUsuario.editor;
  print(rol.descripcion); // Editor
}

Ejemplo avanzado: Enum y switch en Flutter

enum EstadoConexion { conectado, desconectado, conectando }

Widget iconoConexion(EstadoConexion estado) {
  switch (estado) {
    case EstadoConexion.conectado:
      return Icon(Icons.wifi, color: Colors.green);
    case EstadoConexion.desconectado:
      return Icon(Icons.wifi_off, color: Colors.red);
    case EstadoConexion.conectando:
      return Icon(Icons.wifi_tethering, color: Colors.orange);
  }
}

Buenas prácticas con Enum

  • Usa enums para estados, roles, filtros y opciones fijas.
  • Aprovecha las nuevas características de Dart 2.17+ y 3.0+.
  • No abuses de los enums para datos dinámicos o configuraciones externas.

Recursos útiles


¿Listo para escribir código más limpio y seguro?
¡Con enums avanzados, tus apps Flutter serán más robustas y expresivas!

Qué dicen nuestros clientes

Nos enorgullecemos de colaborar con empresas visionarias que buscan soluciones tecnológicas innovadoras y personalizadas.

EXCELENTEA base de 9 reseñas

Excelente profesional, rápido y amable en todo el proceso de lo que necesitas crear.

RM
Raúl Muñoz Jara
2024-08-13

Tinguar es una empresa de diseño web de primer nivel que superó todas mis expectativas. La calidad de su trabajo es impecable.

BL
Bryan German Leon Rueda
2024-02-22

Excelente servicio, me ayudo con mi pagina EEUU. Lo recomiendo 100%.

JL
Jorge Luis
2024-04-26

Excelente servicio, me realizo la pagina web y va de maravilla. Recomendable.

DJ
Daniel Jaramillo
2024-03-04

Excelente servicio y atención, recomendado llevo años con esta empresa y son muy profesionales.

AV
Adrian Alejandro Villena
2023-06-06

El gerente excelente profesional, realizó nuestra página para el centro pre universitario.. 10 / 10

CL
Carranza Luis
2023-09-02

Increíble trabajo, muy profesional y puntual. Mi sitio web quedó perfecto.

MG
María González
2024-01-15

Excelente atención al cliente y resultados sobresalientes. Altamente recomendado.

CR
Carlos Rodríguez
2024-05-20

Trabajo de calidad superior, entregaron antes de lo esperado. Muy satisfecho.

AM
Ana Martínez
2024-03-18

Profesionales de primera, entendieron perfectamente lo que necesitaba.

LF
Luis Fernández
2024-06-10

Servicio excepcional, comunicación clara y resultados excelentes.

PS
Patricia Silva
2024-04-05

Equipo muy competente, transformaron mi idea en una realidad digital increíble.

RT
Roberto Torres
2024-07-22

Excelente profesional, rápido y amable en todo el proceso de lo que necesitas crear.

RM
Raúl Muñoz Jara
2024-08-13

Tinguar es una empresa de diseño web de primer nivel que superó todas mis expectativas. La calidad de su trabajo es impecable.

BL
Bryan German Leon Rueda
2024-02-22

Excelente servicio, me ayudo con mi pagina EEUU. Lo recomiendo 100%.

JL
Jorge Luis
2024-04-26

Excelente servicio, me realizo la pagina web y va de maravilla. Recomendable.

DJ
Daniel Jaramillo
2024-03-04

Excelente servicio y atención, recomendado llevo años con esta empresa y son muy profesionales.

AV
Adrian Alejandro Villena
2023-06-06

El gerente excelente profesional, realizó nuestra página para el centro pre universitario.. 10 / 10

CL
Carranza Luis
2023-09-02

Increíble trabajo, muy profesional y puntual. Mi sitio web quedó perfecto.

MG
María González
2024-01-15

Excelente atención al cliente y resultados sobresalientes. Altamente recomendado.

CR
Carlos Rodríguez
2024-05-20

Trabajo de calidad superior, entregaron antes de lo esperado. Muy satisfecho.

AM
Ana Martínez
2024-03-18

Profesionales de primera, entendieron perfectamente lo que necesitaba.

LF
Luis Fernández
2024-06-10

Servicio excepcional, comunicación clara y resultados excelentes.

PS
Patricia Silva
2024-04-05

Equipo muy competente, transformaron mi idea en una realidad digital increíble.

RT
Roberto Torres
2024-07-22
Verificado por Trustindex

¿Te gustó este artículo?

Si encontraste útil este contenido, considera compartirlo o contactarnos para proyectos similares. Estamos aquí para ayudarte con tus necesidades tecnológicas.

¡Comunicate por WhatsApp !