Generador de códigos QR en Swift: biblioteca EFQRCode para iOS y macOS

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Generador de códigos QR en Swift (iOS/macOS): biblioteca EFQRCode



Los códigos QR se han convertido en una parte esencial de las aplicaciones modernas, desde la autenticación hasta la transferencia de enlaces y contactos. Si estás desarrollando para iOS o macOS en Swift, no necesitas escribir algoritmos de codificación complejos desde cero. La biblioteca lista EFQRCode proporciona una API conveniente para crear, leer y personalizar códigos QR. En este artículo, analizaremos sus capacidades, instalación y ejemplos de uso.



¿Qué es EFQRCode?

EFQRCode es una biblioteca de código abierto escrita en Swift. Es compatible con iOS (desde la versión 9.0) y macOS (10.11+). Las principales características son:

  • Generación de códigos QR a partir de cadenas, direcciones URL, contactos vCard y texto.
  • Configuración de color, fondo, tamaño y nivel de corrección de errores.
  • Adición de marcas de agua (logotipos, imágenes) en el centro del código QR.
  • Creación de códigos QR animados (GIF).
  • Decodificación de códigos QR a partir de imágenes.

La biblioteca utiliza el CIFilter integrado de Core Image, pero añade muchas envolturas y personalizaciones convenientes.



Instalación a través de Swift Package Manager

Añade el paquete EFQRCode a tu proyecto Xcode:

// En Xcode: File → Add Packages...// Pega la URL del repositorio:https://github.com/EFPrefix/EFQRCode.git// Selecciona la versión (se recomienda "Up to Next Major")

O añade manualmente la dependencia en Package.swift:

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


Ejemplo básico de generación de código QR

La forma más sencilla de crear un código QR a partir de una cadena:

import EFQRCode

// Creación de un código QR a partir de textoif let image = EFQRCode.generate( content: "https://pythonlib.ru", size: EFIntSize(width: 300, height: 300)) { // Usa image (CGImage) para mostrarlo // Por ejemplo, en UIImageView en iOS: let uiImage = UIImage(cgImage: image) imageView.image = uiImage}

El resultado es un código QR estándar en blanco y negro de 300x300 píxeles.



Personalización de color y fondo

Puedes establecer un color de primer plano y de fondo arbitrarios:

import EFQRCode

let qrImage = EFQRCode.generate( content: "¡Hola, Swift!", size: EFIntSize(width: 400, height: 400), backgroundColor: UIColor.yellow.cgColor, foregroundColor: UIColor.blue.cgColor, inputCorrectionLevel: .h // corrección de errores máxima)

El parámetro inputCorrectionLevel acepta los valores .l (7%), .m (15%), .q (25%), .h (30%). Cuanto mayor sea el nivel, más datos se pueden recuperar en caso de daño.



Adición de logotipo (marca de agua)

Para colocar un logotipo en el centro del código QR, usa el 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: el logotipo no debe ocupar más del 30% del área, de lo contrario, el código podría no ser legible.



Creación de un código QR animado (GIF)

EFQRCode admite la generación de códigos QR animados. Por ejemplo, se puede crear un GIF con colores cambiantes:

import EFQRCode

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

Para una animación simple, se pueden usar colores predefinidos. Más detalles en la documentación de la biblioteca.



Decodificación de un código QR a partir de una imagen

Para leer un código QR de una foto o captura de pantalla:

import                    

Recommendations