Saltar al contenido principal

Utils

lib/core/utils/ contiene utilidades stateless organizadas por categoría. Todo lo que sea una función pura, un helper sin estado, o una configuración transversal que no encaje en las otras carpetas del core pertenece aquí.

Categorías

CarpetaQué colocar aquí
http/Cliente HTTP, interceptors de autenticación y reporte de errores.
formatters/TextInputFormatter para campos de texto: teléfono, montos, email.
colors/Funciones para manipular colores: mezcla, opacidad, contraste.
theme/Helpers para acceder al tema activo sin repetir lógica de BuildContext.
string/Funciones de transformación de strings que no aplican como extensiones: enmascaramiento, truncado, formateo de nombres.
animations/Wrappers de animaciones estándar del design system sobre flutter_animate.
skeletons/Valores placeholder con la estructura correcta para usarlos con skeletonizer durante la carga.
general/Todo lo que no encaje en las categorías anteriores: transiciones de página, captura de widgets, helpers de archivos.

Cuándo agregar algo a utils/

Una utilidad pertenece a utils/ si cumple todos estos criterios:

  • Sin estado: es una función pura o una clase sin instancia que almacene datos mutables.
  • Sin dominio: no importa nada de lib/src/[feature]/. Opera sobre tipos primitivos, tipos de Flutter/Dart, o entidades genéricas.
  • Reutilizable: es usada (o podría usarse) desde al menos dos lugares distintos de la app.
  • No encaja en otra carpeta del core: no es un adapter, extensión, validador, enum ni typedef.

Si la utilidad tiene estado o necesita ser inyectada, probablemente pertenece a adapters/ o blocs/ en su lugar.

Estructura de archivos

lib/
└── core/
└── utils/
├── http/
├── formatters/
├── colors/
├── theme/
├── string/
├── animations/
├── skeletons/
└── general/