¿Quieres programar como un desarrollador sénior de Flutter? ¡Prueba estas 5 extensiones!

Ravi Pai

Ravi Pai.16 de mayo de 2025. MEDIUM

Cuando empecé con Flutter, mi código era un poco caótico: mucha repetición repetida, widgets profundamente anidados y llamadas interminables, como dispersas por todas partes. Pensaba que escribir código limpio y fácil de mantener consistía simplemente en conocer los widgets y patrones adecuados, pero me equivocaba.

Un día, me topé con un pequeño fragmento de código que usaba métodos de extensión . Fue una revelación. Las extensiones permiten añadir nuevas funciones a las clases existentes sin reescribirlas, lo que hace que el código sea mucho más legible, reutilizable y elegante. ¡Puaj!, me emocioné al usar extensiones en todas partes.

Desde entonces, he adoptado las extensiones como parte central de mi desarrollo de Flutter.

1. Seguimiento del tiempo de ejecución en el futuro

¿Necesitas medir la duración de un futuro? Esta práctica extensión registra el tiempo de ejecución con una sola línea, ideal para crear perfiles rápidamente.

extensión ExFuture<T> en Future<T> { 
Future<T> trackTime( String label) async { inicio
final = DateTime .now(); resultado
final = await this ; fin
final = DateTime .now(); duración
final = end.difference(inicio);
print ( ' $label completado en ${duration.inMilliseconds} ms' );
devolver resultado;
}
}

Uso

await fetchData (). trackTime ('Obtener datos');

2. OnTap Wrapper para cualquier widget:

Hacer que los widgets sean táctiles en Flutter suele implicar envolverlos en un GestureDetector una y otra vez. Es repetitivo y sobrecarga el árbol de widgets. Con una simple extensión, puedes convertir cualquier widget en táctil en una sola línea. Las interacciones táctiles ahora son mucho más fáciles.

extensión ExTapExtension en el widget { 
Widget onTap(VoidCallback onTap) =>
GestureDetector(
onTap: onTap,
comportamiento: HitTestBehavior.opaque,
hijo: this ,
);
}

Uso

Icon(Icons.info).onTap(() => print ( '¡Tocado!' ))

3. Extensiones iterables: mapeo con índice:

¿Alguna vez has intentado mapear una lista y también necesitas el índice? De repente, te ves obligado a manipular contadores y la cosa se complica rápidamente. Con una sencilla extensión, puedes añadir un método mapIndexed limpio y elegante: se acabó la indexación manual, solo código legible y de alto nivel.

extensión ExIndexedMap < E > en  Iterable < E > { 
Iterable < T > mapIndexed < T >( Función T( int índice, E elemento ) f) {
var i = 0 ;
devolver mapa((e) => f(i++, e));
}
}

Uso

anyList.mapIndexed((i, elemento) => Texto( ' $i : $elemento ' ))

4. Acceso rápido a las métricas de pantalla:

Obtener el tamaño de la pantalla y las métricas del dispositivo es muy común en Flutter, pero escribir MediaQuery.of(context).sizeconstantemente puede resultar tedioso. Con una extensión sencilla, puedes obtener el ancho, la altura y más información de la pantalla directamente desde [nombre del archivo BuildContext], lo que hace que tu código de diseño sea más claro y fácil de leer.

extensión ExScreenMetrics en BuildContext { 
MediaQueryData obtener mq => MediaQuery.of( this );
doble obtener ancho => mq.size.width;
doble obtener alto => mq.size.height;
}

Uso

contexto. altura * 0.3

5. Acceso rápido al tema:

¿Cansado de escribir Theme.of(context)todo el tiempo? Mejora tu código extendiendo el código BuildContextpara acceder rápidamente a las propiedades del tema.

extensión Extheme en BuildContext { 
ThemeData obtener tema => Theme.of( this );
TextTheme obtener textTheme => theme.textTheme;
ColorScheme obtener colorScheme => theme.colorScheme;
// más si quieres
}

Uso

Texto ( 
'¡Hola, Flutter!' ,
estilo : context.textTheme.headlineSmall,
)

Menos código repetitivo y más legible. Esta pequeña extensión fomenta el uso consistente del sistema de diseño de tu aplicación.

¿Te gustaron estas extensiones? ¡Hay muchas más!
Descubre mi paquete de Flutter 👉 ultimate_extension en pub.dev: repleto de extensiones prácticas y reutilizables para que tu código sea más limpio e inteligente.

Si esto te ayudó, ¡compártelo con un compañero desarrollador!¿Tienes algún truco genial para extensiones? Déjalo en los comentarios.

Comparte en tus perfiles

Facebook
Twitter
LinkedIn

Artículos Relacionados:

La granja que aprende: tecnología, eficiencia y futuro

Manuel Lainez. 13 de junio de 2026. Fundacion Grupo Cajamar. Plataforma Tierra El 80 % de los datos que generan las granjas no se utilizan. El 68 % de las empresas ganaderas es incapaz de usar sus propios datos de forma eficiente. Estas dos cifras, presentadas en la Jornada sobre Eficiencia en Producción Porcina organizada por

Seguir leyendo »

La Comisión Europea lanza la Plataforma de Innovación para centralizar el acceso a recursos

ESMARTCITY. 11/06/2026 La Comisión Europea ha presentado la nueva Plataforma de Innovación de la UE, una herramienta digital concebida para centralizar el acceso a servicios, recursos y oportunidades dirigidos a startups, empresas innovadoras, investigadores y emprendedores de toda Europa. Presentada durante el European Innovation Summit celebrado en Bruselas, la iniciativa busca facilitar que los proyectos innovadores accedan

Seguir leyendo »

La violación de Venezuela

Ricardo Hausmann. 12 de junio de 2026. Project Syndicate. CAMBRIDGE—Poco después de la captura del presidente venezolano Nicolás Maduro, el presidente de Estados Unidos, Donald Trump, elogió a los nuevos gobernantes del país. Delcy Rodríguez, la vicepresidenta de Maduro que asumió el poder tras su detención y traslado a Estados Unidos, estaba “haciendo un gran

Seguir leyendo »