Eskema: Validación de datos en Dart, componible y ergonómica

Eskema: biblioteca de validación para Dart/Flutter que valida datos en tiempo de ejecución con validadores como funciones, sin código generado y con composición clara.

11 sept 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Todos los proyectos Dart tienen ese archivo temido lleno de comprobaciones if value == null || value is! String || value.isEmpty que empieza como una validacion rapida y acaba convertido en un plato de espagueti que nadie toca. Eskema nace precisamente para evitar ese desastre: una biblioteca declarativa, ergonomica y poco dogmatica para validar datos en tiempo de ejecucion sin generar codigo ni clases misteriosas.

Concepto clave: validadores como funciones. En Eskema un validador es simplemente una funcion que recibe un valor y devuelve un Result. Puedes combinarlos y anidarlos libremente con operadores y funciones utilitarias, lo que hace la logica de validacion facil de razonar y componer sin convertir el codigo en una jungla de if else.

Funciones y validadores integrados: la libreria incluye comprobaciones tipicas para tipos, numeros, cadenas, listas y mapas. Ejemplos habituales: isString() isInt() isEmail() listEach() listIsOfLength(). Tambien hay checks de presencia como isNotNull() isNotEmpty() isPresent() y comparaciones como isGt() isLte() isIn().

Azucar sintactica y semantica clara: combina validadores con operadores como AND y OR o con funciones como not() y personaliza mensajes de error inline. La distincion entre nullable y optional evita la confusión entre ausencia de clave y valor nulo: usa nullable(validator) para permitir null y optional(validator) para permitir que falte la clave por completo.

Sin generacion de codigo: Eskema valida mapas y valores Dart en tiempo de ejecucion, sin pasos de build ni clases generadas. Esto simplifica pipelines y es ideal para formularios Flutter, manejadores de API, archivos de configuracion o cualquier capa que reciba datos dinamicos.

Ejemplo funcional basico: final userSchema = eskema({ username: isString() & isNotEmpty(), password: isString() & hasLength(8,32), email: isString() & isEmail(), signupDate: optional(isDateTime()), }); final result = userSchema.validate({ username: alice, password: secret123, email: alice@example.com }); if (!result.isValid) { print(result.expectations); } Este enfoque sustituye montones de comprobaciones manuales por una descripcion clara de lo que esperas y un resultado estructurado con expectativas y rutas de campo.

API builder para ergonomia: si prefieres un estilo fluent y compatible con el autocompletado del IDE, Eskema dispone de un builder basado en clases. Ejemplo: final mapValidator = $map().schema({ id: $string().trim().toIntStrict().gt(0), tags: $list().each($string()).lengthMin(1), }); final res = mapValidator.validate({ id: 42, tags: [dart, eskema] }); La ventaja es ergonomia, seguridad de tipos y menos necesidad de importar numerosas funciones sueltas.

Extensible y preparado para produccion: añadir un validador o transformador nuevo es trivial. Hay soporte asincrono con validateAsync(), mensajes de error claros y pruebas. Las fallas devuelven una lista estructurada de expectativas con mensaje y ruta del campo, no solo un booleano.

Antes y despues: en lugar de escribir una funcion larga y fragil con decenas de comprobaciones if else y regex, con Eskema defines el esquema de forma declarativa y legible. El resultado es codigo mas mantenible, facil de ampliar y menos propenso a errores en casos limites.

Consejos de uso: utiliza los accesos rapidos tipo $isString para validadores sin argumentos y isString() cuando quieras customizar el mensaje. Familiarizate con los operadores para componer esquemas mas concisos. Aprovecha la API builder en proyectos grandes para sacar el mayor partido al autocompletado.

Q2BSTUDIO y validacion de datos: en Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida, con experiencia en proyectos que integran inteligencia artificial, ciberseguridad y servicios cloud aws y azure. Incorporar librerias como Eskema en tus soluciones ayuda a reducir errores en entradas dinamicas y a mejorar la calidad del pipeline de datos que alimenta modelos de ia para empresas y agentes IA.

Si necesitas desarrollar una aplicacion robusta y validada de principio a fin, descubre como trabajamos en soluciones escalables y multiplataforma en desarrollo de aplicaciones y software a medida. Para proyectos que combinan validacion, procesamiento y servicios de inteligencia artificial, podemos ayudarte a diseñar pipelines seguros y eficientes; conoce mas en nuestros servicios de inteligencia artificial.

Ademas ofrecemos servicios de ciberseguridad y pentesting, implementacion de servicios inteligencia de negocio y power bi, y automatizacion de procesos, todo orientado a reducir riesgos y acelerar el valor de tus datos. Palabras clave que describen nuestra oferta: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.

Conclusión: Eskema es una herramienta ligera pero poderosa para validar datos en tiempo de ejecucion en proyectos Dart. Su composabilidad, claridad y ausencia de codegen la hacen ideal para integrar en soluciones a medida desarrolladas por equipos como Q2BSTUDIO, donde la calidad de los datos y la ergonomia del codigo importan tanto como la funcionalidad final.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.