Что такое Validator и зачем он нужен?
Validator — это легковесная библиотека для валидации данных в Swift, предназначенная для iOS и macOS приложений. Она позволяет декларативно описывать правила проверки пользовательского ввода, избегая громоздких if-else конструкций. Основная цель — упростить обработку форм, API-запросов и любых других данных, где требуется проверка на корректность (email, пароль, возраст, диапазон чисел и т.д.).
Установка
Validator устанавливается через Swift Package Manager (SPM). Добавьте в Package.swift зависимость:
.package(url: "https://github.com/adamwaite/Validator.git", from: "3.2.0")Или через Xcode: File → Add Packages → вставьте URL репозитория.
Основные функции
- Валидация строк: email, URL, регулярные выражения, длина, непустота.
- Числовая валидация: диапазон, минимальное/максимальное значение, целые числа.
- Композитные правила: объединение нескольких условий через
And/Or. - Кастомные валидаторы: создание собственных правил через замыкания.
- Интеграция с UIKit/SwiftUI: готовые расширения для UITextField и SwiftUI View.
Пример кода на Swift (iOS)
import Validator
// 1. Определяем правило для email
let emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "Некорректный email")
// 2. Валидируем строку
let email = "test@example.com"
let result = email.validate(rule: emailRule)
switch result {
case .valid:
print("Email корректен")
case .invalid(let errors):
print("Ошибки: \(errors)")
}
// 3. Композитное правило: пароль от 8 до 20 символов, содержит хотя бы одну цифру
let passwordRule = ValidationRuleLength(min: 8, max: 20, error: "Длина пароля от 8 до 20")
&& ValidationRulePattern(pattern: ".*[0-9].*", error: "Пароль должен содержать цифру")
let password = "SecurePass1"
let passwordResult = password.validate(rule: passwordRule)
// 4. Валидация UITextField (UIKit)
let textField = UITextField()
textField.text = "user@domain.com"
textField.validate(rule: emailRule) { result in
// обработка результата
}Когда использовать Validator
- Формы регистрации/авторизации (email, пароль, телефон).
- Валидация ввода в UITextField / SwiftUI TextField.
- Проверка данных перед отправкой на сервер.
- Фильтрация и проверка пользовательского контента (отзывы, комментарии).
- Парсинг и валидация JSON/API ответов.
Библиотека идеально подходит для проектов, где требуется гибкая, читаемая и расширяемая система проверки данных без лишнего boilerplate кода.
Также в библиотеке
Sharp для JavaScript (Node.js): полное руководство с примерами
CLI фреймворк для Rust: Clap — мощный и удобный инструмент для создания консольных приложений
Мониторинг Node.js приложений: Инструменты и библиотеки
BenchmarkDotNet для C# (.NET): полное руководство с примерами
Обработка изображений в C# (.NET): библиотеки и примеры кода