Валидация данных в Swift с помощью Validated

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Что такое Validated и зачем он нужен?

Validated — это легковесная библиотека для Swift, предназначенная для декларативной валидации данных. Вместо того чтобы писать громоздкие if-else цепочки или использовать NSPredicate, вы описываете правила проверки в виде цепочки методов. Это особенно полезно при обработке форм, API-ответов и пользовательского ввода в iOS/macOS приложениях.

Как установить Validated?

Библиотека распространяется через Swift Package Manager. Добавьте в Package.swift зависимость:

dependencies: [
    .package(url: "https://github.com/your-repo/Validated.git", from: "1.0.0")
]

Или через Xcode: File → Add Packages → вставьте URL репозитория.

Основные функции

  • Валидация строк — проверка email, длины, регулярных выражений.
  • Валидация чисел — диапазон, минимальное/максимальное значение.
  • Композитные проверки — объединение нескольких правил через AND/OR.
  • Локализованные ошибки — автоматический перевод сообщений на язык устройства.
  • Async-валидация — для проверок, требующих сетевых запросов.

Пример кода на Swift (iOS)

import Validated

struct RegistrationForm {
    @Validated(.email, .nonEmpty)
    var email: String
    
    @Validated(.range(6...20), .alphanumeric)
    var password: String
    
    func validate() -> Bool {
        return $email.isValid && $password.isValid
    }
}

// Использование
var form = RegistrationForm()
form.email = "user@example.com"
form.password = "Pass123"

if form.validate() {
    print("Форма валидна")
} else {
    print("Ошибка: \(form.$email.errors.first ?? "")")
}

Когда использовать Validated?

Библиотека идеально подходит для:

  • Форм регистрации и авторизации
  • Валидации полей ввода в реальном времени
  • Проверки данных перед отправкой на сервер
  • Создания чистого кода с разделением ответственности

Используйте Validated, если хотите сократить boilerplate-код и сделать валидацию прозрачной и тестируемой. Библиотека активно поддерживается и совместима с iOS 13+ и macOS 10.15+.

Рекомендаций