Validação de dados em Swift (iOS/macOS): bibliotecas e abordagens

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Validação de dados em Swift (iOS/macOS): bibliotecas, ferramentas e exemplos práticos



A validação de dados é um dos principais aspectos do desenvolvimento de aplicativos iOS e macOS de qualidade. Sem uma verificação confiável dos dados inseridos, o usuário pode encontrar erros, comportamento incorreto da interface ou até falhas. Neste artigo, veremos as melhores bibliotecas e abordagens para validação de dados em Swift, além de fornecer exemplos de código específicos.



Por que a validação de dados é necessária?

A validação permite:

  • Garantir a correção dos dados inseridos (email, telefone, senha).
  • Prevenir erros no lado do servidor.
  • Melhorar a experiência do usuário com feedback instantâneo.
  • Aumentar a segurança do aplicativo.


Bibliotecas populares para validação em Swift

Atualmente, existem várias bibliotecas testadas que simplificam a validação de dados:

  • Validated — biblioteca leve com suporte a Combine e SwiftUI.
  • SwiftValidator — uma das primeiras bibliotecas para validação de campos de texto.
  • Validator (de Adamwaite) — ferramenta simples e flexível com várias regras integradas.
  • Regex — não é uma biblioteca, mas um mecanismo integrado para trabalhar com expressões regulares, frequentemente usado para validação.


Exemplo 1: Validação de email com expressão regular

A maneira mais simples é usar NSRegularExpression ou o método integrado range(of:options:).

import Foundation

func isValidEmail(_ email: String) -> Bool { let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,64}" let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailRegex) return emailPredicate.evaluate(with: email)}

// Usoprint(isValidEmail("test@example.com")) // trueprint(isValidEmail("invalid-email")) // false


Exemplo 2: Validação de senha (comprimento, presença de dígitos e caracteres especiais)

Frequentemente, é necessário que a senha tenha pelo menos 8 caracteres, pelo menos um dígito e um caractere especial.

func isValidPassword(_ password: String) -> Bool {    // Mínimo de 8 caracteres    guard password.count >= 8 else { return false }        // Verificar presença de dígito    let digitRegex = ".*[0-9]+.*"    let digitPredicate = NSPredicate(format: "SELF MATCHES %@", digitRegex)    guard digitPredicate.evaluate(with: password) else { return false }        // Verificar presença de caractere especial    let specialCharRegex = ".*[!@#$%^&*()_+\\\\-=\\\\[\\\\]{};':\\"\\\\\\\\|,./<>?]+.*"    let specialPredicate = NSPredicate(format: "SELF MATCHES %@", specialCharRegex)    guard specialPredicate.evaluate(with: password) else { return false }        return true}

print(isValidPassword("Pass123!")) // trueprint(isValidPassword("weak")) // false


Exemplo 3: Uso da biblioteca Validator (Adamwaite)

A biblioteca Validator fornece uma sintaxe conveniente para encadeamento de regras.

import Validator

let emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "Email inválido")let emailResult = "user@domain.com".validate(rule: emailRule)

switch emailResult {case .valid: print("Email válido")case .invalid(let errors): print("Erro: \\(errors.first?.message ?? "")")}


Exemplo 4: Validador personalizado para verificar idade

Às vezes, é necessário verificar se o usuário tem uma idade mínima.

struct AgeValidator {    static func isValid(age: Int) -> Bool {        return age >= 18 && age <= 120    }}

// Usolet userAge = 25if AgeValidator.isValid(age: userAge) { print(

Recommendations