Validación de datos en Swift: biblioteca Validator

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es la validación de datos en Swift y para qué sirve?

La validación de datos es el proceso de verificar los datos de entrada según reglas definidas. En el desarrollo de iOS/macOS es críticamente importante: desde la verificación de email y contraseña en un formulario de registro hasta la validación de una respuesta JSON del servidor. Las herramientas integradas de Foundation (NSPredicate, expresiones regulares) suelen ser engorrosas e incómodas para su reutilización. Validator es una biblioteca ligera para Swift que permite describir reglas de validación de forma declarativa mediante cadenas de llamadas (chainable syntax) y usarlas en cualquier parte del proyecto.

Cómo instalar la biblioteca Validator

Validator está disponible a través de Swift Package Manager (SPM). Agréguela en Package.swift o mediante Xcode: File → Add Packages → ingrese la URL del repositorio:

https://github.com/adamwaite/Validator

O mediante CocoaPods, si lo usa:

pod 'Validator'

Funciones principales de la biblioteca

  • Reglas integradas: email, URL, cadena, número, longitud, expresiones regulares y muchas otras.
  • Reglas personalizadas: se puede crear cualquier verificación implementando el protocolo ValidationRule.
  • Validación de colecciones: verificación de arrays, diccionarios, valores opcionales.
  • Errores legibles para humanos: devuelve mensajes de error localizados.
  • Trabajo con UIKit/SwiftUI: se pueden validar directamente campos de texto.

Ejemplo de código en Swift

import Validator

// Creamos las reglaslet emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard)let passwordRule = ValidationRuleLength(min: 8, max: 32)

// Validamos una cadenalet email = "test@example.com"let result = email.validate(rule: emailRule)

switch result {case .valid: print("Email válido")case .invalid(let errors): print("Errores: \\(errors)")}

// Validación con múltiples reglaslet username = "user123"let usernameRules = ValidationRuleSet<String>()usernameRules.add(rule: ValidationRuleLength(min: 3))usernameRules.add(rule: ValidationRulePattern(pattern: "^[a-zA-Z0-9_]+$"))

let usernameResult = username.validate(rules: usernameRules)if case .invalid(let errors) = usernameResult { print("Errores de validación del nombre: \\(errors)")}

// Ejemplo para UITextField (UIKit)let textField = UITextField()textField.text = "invalid email"textField.validate(rule: emailRule) { result in switch result { case .valid: textField.layer.borderColor = UIColor.green.cgColor case .invalid(let errors): textField.layer.borderColor = UIColor.red.cgColor print(errors.first?.message ?? "") }}

Cuándo usar Validator

La biblioteca es ideal para:

  • Formularios de entrada (registro, inicio de sesión, perfil).
  • Validación de datos antes de enviarlos al servidor.
  • Verificación de la entrada del usuario en tiempo real.
  • Análisis y validación de respuestas JSON/API.
  • Cualquier escenario donde se requiera una verificación de datos reutilizable múltiples veces.

Validator reduce significativamente el código repetitivo, hace que la validación sea legible y comprobable. Es una herramienta imprescindible para cualquier desarrollador Swift que trabaje con entrada de usuario o datos externos.

Recommendations