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 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.

Recommendations