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

May 09 2023
Поскольку я написал статью о реализации валидатора для формы входа в RxSwift, я решил написать ее для той же идеи, используя фреймворк Apple 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следующую историю.

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