¿Qué es Validator y para qué sirve?
Validator es una librería ligera para la validación de datos en Swift, diseñada para aplicaciones iOS y macOS. Permite describir de forma declarativa las reglas de verificación de la entrada del usuario, evitando construcciones if-else voluminosas. El objetivo principal es simplificar el procesamiento de formularios, solicitudes API y cualquier otro dato que requiera verificación de corrección (email, contraseña, edad, rango de números, etc.).
Instalación
Validator se instala a través de Swift Package Manager (SPM). Agregue la dependencia en Package.swift:
.package(url: "https://github.com/adamwaite/Validator.git", from: "3.2.0")O a través de Xcode: File → Add Packages → pegue la URL del repositorio.
Funciones principales
- Validación de cadenas: email, URL, expresiones regulares, longitud, no vacío.
- Validación numérica: rango, valor mínimo/máximo, números enteros.
- Reglas compuestas: combinación de múltiples condiciones mediante
And/Or. - Validadores personalizados: creación de reglas propias a través de closures.
- Integración con UIKit/SwiftUI: extensiones listas para UITextField y SwiftUI View.
Ejemplo de código en Swift (iOS)
import Validator
// 1. Definimos la regla para emaillet emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "Email incorrecto")
// 2. Validamos la cadenalet email = "test@example.com"let result = email.validate(rule: emailRule)
switch result {case .valid: print("Email correcto")case .invalid(let errors): print("Errores: \\(errors)")}
// 3. Regla compuesta: contraseña de 8 a 20 caracteres, que contenga al menos un dígitolet passwordRule = ValidationRuleLength(min: 8, max: 20, error: "Longitud de contraseña de 8 a 20") && ValidationRulePattern(pattern: ".*[0-9].*", error: "La contraseña debe contener un dígito")
let password = "SecurePass1"let passwordResult = password.validate(rule: passwordRule)
// 4. Validación de UITextField (UIKit)let textField = UITextField()textField.text = "user@domain.com"textField.validate(rule: emailRule) { result in // procesamiento del resultado}Cuándo usar Validator
- Formularios de registro/inicio de sesión (email, contraseña, teléfono).
- Validación de entrada en UITextField / SwiftUI TextField.
- Verificación de datos antes de enviarlos al servidor.
- Filtrado y verificación de contenido de usuario (reseñas, comentarios).
- Análisis y validación de respuestas JSON/API.
La librería es ideal para proyectos que requieren un sistema de verificación de datos flexible, legible y extensible sin código boilerplate innecesario.
También en la biblioteca
Envío de correo electrónico en PHP: PHPMailer, SwiftMailer y mail() — guía completa
Envío de correo electrónico en Rust: bibliotecas lettre y mailparse para trabajar con correo
Nodemailer
Moshi para Kotlin: guía completa con ejemplos prácticos