Gerador de QR Codes em Swift: biblioteca EFQRCode para iOS e macOS

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

Gerador de QR Codes em Swift (iOS/macOS): biblioteca EFQRCode



Os QR Codes se tornaram parte essencial dos aplicativos modernos — desde autenticação até compartilhamento de links e contatos. Se você desenvolve para iOS ou macOS em Swift, não precisa escrever algoritmos complexos de codificação do zero. A biblioteca pronta EFQRCode fornece uma API conveniente para criar, ler e personalizar QR Codes. Neste artigo, vamos explorar seus recursos, instalação e exemplos de uso.



O que é EFQRCode?

EFQRCode é uma biblioteca de código aberto escrita em Swift. Ela suporta iOS (a partir da versão 9.0) e macOS (10.11+). Principais recursos:

  • Geração de QR Codes a partir de strings, URLs, contatos vCard e texto.
  • Personalização de cor, fundo, tamanho e nível de correção de erros.
  • Adição de marcas d'água (logotipos, imagens) no centro do QR Code.
  • Criação de QR Codes animados (GIF).
  • Decodificação de QR Codes a partir de imagens.

A biblioteca usa o CIFilter integrado do Core Image, mas adiciona várias abstrações e personalizações convenientes.



Instalação via Swift Package Manager

Adicione o pacote EFQRCode ao seu projeto Xcode:

// No Xcode: File → Add Packages...// Insira a URL do repositório:https://github.com/EFPrefix/EFQRCode.git// Selecione a versão (recomendado "Up to Next Major")

Ou adicione manualmente a dependência no Package.swift:

dependencies: [    .package(url: "https://github.com/EFPrefix/EFQRCode.git", from: "6.0.0")]


Exemplo básico de geração de QR Code

A maneira mais simples de criar um QR Code a partir de uma string:

import EFQRCode

// Criação de QR Code a partir de textoif let image = EFQRCode.generate( content: "https://pythonlib.ru", size: EFIntSize(width: 300, height: 300)) { // Use image (CGImage) para exibir // Por exemplo, em UIImageView no iOS: let uiImage = UIImage(cgImage: image) imageView.image = uiImage}

O resultado é um QR Code padrão preto e branco de 300x300 pixels.



Personalização de cor e fundo

Você pode definir cores arbitrárias para o primeiro plano e o fundo:

import EFQRCode

let qrImage = EFQRCode.generate( content: "Olá, Swift!", size: EFIntSize(width: 400, height: 400), backgroundColor: UIColor.yellow.cgColor, foregroundColor: UIColor.blue.cgColor, inputCorrectionLevel: .h // correção máxima de erros)

O parâmetro inputCorrectionLevel aceita os valores .l (7%), .m (15%), .q (25%), .h (30%). Quanto maior o nível, mais dados podem ser recuperados em caso de danos.



Adicionando logotipo (marca d'água)

Para colocar um logotipo no centro do QR Code, use o método generateWithWatermark:

import EFQRCode

let watermarkImage = UIImage(named: "logo")?.cgImagelet qrWithLogo = EFQRCode.generateWithWatermark( content: "https://pythonlib.ru", size: EFIntSize(width: 500, height: 500), watermark: watermarkImage, watermarkMode: .center)

Importante: o logotipo não deve ocupar mais de 30% da área, caso contrário o código pode não ser legível.



Criação de QR Code animado (GIF)

O EFQRCode suporta a geração de QR Codes animados. Por exemplo, você pode criar um GIF com cores variáveis:

import EFQRCode

let qrCodeGIF = EFQRCode.generateGIF( content: "QR Animado", size: EFIntSize(width: 200, height: 200), data: [someData] // array de quadros)

Para animações simples, você pode usar cores prontas. Mais detalhes na documentação da biblioteca.



Decodificação de QR Code a partir de imagem

Para ler um QR Code de uma foto ou captura de tela:

import                    

Recommendations