Облегченный валидатор формы входа с использованием Combine

Поскольку я написал статью о реализации валидатора для формы входа в RxSwift, я решил написать ее для той же идеи, используя фреймворк Apple Combine.
Облегченный валидатор формы входа с использованием RxSwiftПочти для всех мобильных приложений требуется форма входа, и вам необходимо подтвердить учетные данные пользователя, прежде чем продолжить процесс входа.
Давайте начнем реализовывать наш реактивный валидатор простым способом.
Во-первых, давайте импортируем Combine
и Foundation
определим наше перечисление ошибок для обработки ожидаемых ошибок проверки:
Во-вторых, давайте создадим LoginFormValidator
класс, затем добавим частное Constants
перечисление и еще одно перечисление ValidationType
для типов проверки.
Мы создали validate
функцию с двумя параметрами text
, и type
она будет управлять процессом проверки внутри класса и возвращать тип для AnyPublisher<Void, ValidationError>
возврата Void
в случае успеха или ValidationError
неудачи.
Следующим шагом является создание наших частных функций для проверки электронной почты и пароля.
Мы создали наши частные функции validateEmail
и ValidatePassword
чтобы наш код оставался чистым.
Мы используем Future
для управления состоянием и возврата результата, и мы добавили Deferred
сюда ожидание реализации Future
блока.
Наконец, мы собираемся реализовать использование LoginFormValidator
класса в режиме реального времени.
Теперь наш валидатор готов к использованию, и вы можете добавить больше случаев проверки в зависимости от требований вашего приложения.
Я старался быть простым, чтобы легко объяснить идею, и вы привыкли к ней.
Вы можете найти реализацию валидатора формы входа, используя RxSwift
следующую историю.