Escáner de código QR en swift
Hola amigos, bienvenidos de nuevo a otro artículo nuevo y enérgico, que trata de cómo hacer un escáner de código QR con Swift 4.2 y Xcode 9.4 . Al final de este artículo, podrá implementar una funcionalidad de escáner de código QR en sus propias aplicaciones de IOS.
Entonces, empecemos y veamos primero qué es exactamente un código QR.

¿Qué Es El Código QR?

QR significa  respuesta rápida.  Básicamente, se usa para recoger datos aleatorios y mostrarlos en cualquier dispositivo, pero en estos días se usa comúnmente para las operaciones de teléfonos celulares.
Aunque el código QR puede ser muy útil, también tiene ciertas limitaciones. La razón por la que son más útiles que un código de barras estándar es que pueden almacenar y presentar muchos más datos digitalmente, incluidos enlaces URL, coordenadas geográficas, texto y mucho más. La otra característica clave de los códigos QR es que, en lugar de requerir un escáner de mano grueso para escanearlos, muchos teléfonos celulares modernos pueden escanearlos. La descripción completa de Wikipedia está aquí.

Implementando El Lector De Códigos QR Programáticamente

Entonces, cree un nuevo proyecto de Xcode seleccionando una plantilla de aplicación de vista única  provista en Xcode y el nombre que desee. En la demostración demostrada aquí, la denomino demo del lector QR.
Este tutorial no tiene mucho que ver con el uso del guión gráfico, estaremos programando para lograr la funcionalidad. Entonces, primero que nada, diríjase a info.plist  y agregue el par clave-valor para la descripción de uso de la cámara a su aplicación como se muestra en la siguiente figura. Esta aplicación requiere acceder al hardware de la cámara del Iphone para escanear el código.
Una vez que hayas terminado, estamos listos para la codificación. Vaya al archivo viewController.swift , aquí necesitamos importar una biblioteca llamada AVFoundation  que representa la base de audio y video, que proporciona una funcionalidad multimedia muy poderosa para nuestra aplicación.
Para lograr la funcionalidad de escaneo en nuestra aplicación, debemos seguir ciertos pasos, es decir,
  • Hacer una capa de vista previa
  • Definir una sesión de cámara.
  • Haz un dispositivo de captura para mostrar el video en la sesión de cámara
  • Añade la entrada y la salida de ese dispositivo de captura.
  • Definir una cola donde se puedan procesar los resultados de la sesión.
  • agregar objetos de metadatos

Inicio De La Sesión De Representación De Video Por Código

copie los códigos a continuación que se muestran en la figura, estos códigos son solo para detectar el código QR. No los estamos procesando todavía.
En primer lugar, el objetivo es mostrar un video a nuestro usuario para que se cree la variable video' que contendrá la pantalla, es decir, el video. Ahora, podemos crear la sesión  para esa capa de video en nuestro método viewDidLoad .
 Defina el dispositivo de captura que capturará todas las cosas que podemos mostrar, por lo que se  crea lavariable 'captureDevice' . Tome la salida de la cámara, es decir, el dispositivo de captura y póngala en la sesión para que podamos tener algo con qué trabajar. hemos proporcionado a la sesión su entrada al crear la constante de entrada y ahora, por supuesto, a partir de esa sesión, queremos obtener algo de salida para que el código QR pueda ser reconocido. Para eso, se usan declaraciones do-catch que son el mecanismo de manejo de excepciones en Swift.
Ahora, cree una cola y el proceso en el subproceso principal, que es la forma más óptima de darnos los mejores resultados posibles, ya que hemos creado el objeto de metadatos en el subproceso principal y solo nos interesan los objetos de tipo QR . Aunque también puede usar el tipo de reconocimiento facial, por ahora, eso no es motivo de preocupación aquí.
Finalmente, a la vista se le da su marco y se agrega a la capa principal para mostrar la sesión de video con una cámara y hemos iniciado la sesión con el código session.startSession ()

Reconociendo El Código QR

Ahora, ya que podemos grabar nuestra sesión con la cámara, el siguiente paso es detectar el código QR cuando apuntamos hacia ellos, para eso, copie los códigos a continuación fuera del método viewDidLoad a su muestra o proyecto comercial.
Esta función se llama siempre que tengamos alguna salida. Ahora, queremos procesar esa salida.
Ahora agregue un poco de estilo funky para mostrar al usuario de una manera agradable. Entonces, diríjase al guión gráfico y agregue un objeto de vista de imagen como se muestra en la figura.
Aquí, he usado una imagen cuadrada como marcador de posición en la vista de imagen. Puedes descargar la imagen desde  aquí.
Agregue una salida de esta vista de imagen a su archivo de código, por ejemplo, viewController.swift y asígnele un nombre según su elección. Aquí lo he llamado myQRCodeImageview. Si no sabes cómo agregar una salida comprueba aquí.
Ahora, agregue el siguiente código a su método viewDidLoad justo debajo de la  vista capa addSublayer video ) línea.

Y eso es. Ahora estamos bien para ir a probar nuestra aplicación. Así que ejecutemos la aplicación en su dispositivo y verifiquemos si está decodificando el código QR o no para el cual hemos codificado en este artículo.