¿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/ValidatorO 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.
También en la biblioteca
Caché en C++: Biblioteca Cache++
Trabajo con Excel en JavaScript (Node.js): bibliotecas y ejemplos de código
Trabajo con archivos ZIP en C++: bibliotecas y ejemplos de código