Códigos QR, origen, usos y posibilidades

abr. 15, 2024

Este artículo forma parte de una serie:

Los códigos QR, o “Quick Response Codes”, creados en 1994 por Masahiro Hara para la compañía japonesa Denso Wave, fueron originalmente diseñados para mejorar la velocidad de escaneo en la fabricación de vehículos, pero han trascendido sus aplicaciones industriales iniciales para convertirse en una herramienta casi omnipresente en la tecnología móvil y el desarrollo de aplicaciones.

A diferencia de los códigos de barras tradicionales, que están limitados por su capacidad para almacenar información exclusivamente en una dimensión, los códigos QR lo hacen en dos dimensiones. Esto les permite contener una cantidad significativamente mayor de datos, incluyendo texto, URL, o incluso comandos para acciones complejas. Además, pueden ser escaneados desde cualquier ángulo, ofreciendo una flexibilidad y una velocidad de lectura superior.

Esta capacidad multidimensional no solo amplía el tipo de datos que pueden ser almacenados, sino que también facilita una gama más amplia de aplicaciones prácticas, lo que los hace extremadamente útiles en el ámbito del desarrollo de software y aplicaciones móviles. Desde llevar a un usuario a una página web específica hasta configurar automáticamente conexiones WiFi, los códigos QR se han convertido en una interfaz entre el mundo físico y el digital, ofreciendo una interacción instantánea y directa.

¿Cómo funcionan?

Los códigos QR almacenan información utilizando una matriz de puntos en un cuadrado, mediante patrones de módulos negros y blancos que representan bits de datos. La estructura de un código QR incluye componentes clave para su eficiencia:

  • Patrones de localización: Situados en tres esquinas del cuadrado, estos patrones permiten que el escáner identifique la orientación y tamaño del código, facilitando la lectura desde cualquier ángulo.

  • Patrones de alineamiento: Usados en códigos más grandes, ayudan a ajustar distorsiones durante el escaneo, especialmente en superficies curvas o ángulos difíciles.

  • Patrones de temporización: Se extienden horizontal y verticalmente entre los patrones de localización y alineamiento, proporcionando una referencia para la posición de cada bit de datos.

  • Áreas de datos: Aquí se almacenan los datos efectivos, que pueden ser alfanuméricos, binarios, o Kanji, dependiendo del esquema de codificación empleado.

  • Códigos de corrección de errores: Esenciales para mantener la integridad de los datos, permiten que el código sea legible incluso si hasta un 30% está dañado o obscurecido.

El proceso de decodificación inicia con el escaneo del código QR a través de la cámara de un dispositivo móvil o un lector específico. El software del lector identifica los patrones de localización, ajusta la perspectiva del código, y descifra los módulos de datos. Finalmente, la información es interpretada según el tipo de codificación utilizada y convertida en un formato utilizable.

Usos comunes

Los códigos QR se han convertido en una herramienta esencial para desarrolladores debido a su versatilidad y capacidad de almacenar gran cantidad de información en un formato compacto. A continuación, se describen algunos de los usos más frecuentes en el ámbito del desarrollo:

  • Textos: Los códigos QR pueden almacenar texto simple, como mensajes, instrucciones, o información adicional sobre un producto o servicio. Esto permite a los desarrolladores proporcionar contenido adicional sin ocupar espacio adicional en la interfaz de usuario.

  • Abrir URLs: Uno de los usos más comunes es el redireccionamiento a sitios web. Los desarrolladores pueden incorporar códigos QR en aplicaciones para dirigir a los usuarios a más información en línea sin necesidad de teclear URLs.

  • Conexión a redes WiFi: Los códigos QR pueden almacenar la información necesaria para conectarse a una red WiFi. Esto es especialmente útil en lugares públicos o eventos, donde los usuarios pueden escanear un código QR y conectarse a la red sin ingresar manualmente las credenciales de acceso.

  • Envío de emails: Se pueden generar códigos QR que al escanearlos configuren automáticamente un borrador de email con un destinatario y asunto predefinidos, facilitando la comunicación y promoción.

  • Transferencia de datos de contacto y eventos: Los códigos QR pueden contener vCards con información de contacto o detalles de eventos en formato iCalendar, permitiendo una rápida integración con aplicaciones de calendario y contactos.

  • Información personalizada: Los códigos QR pueden ser generados con información personalizada, como nombres, fechas de nacimiento, o mensajes, para su uso en tarjetas de presentación, invitaciones, o regalos. También pueden almacenarse datos en formato JSON, que pueden ser interpretados por aplicaciones móviles para personalizar la experiencia del usuario.

Para ilustrar cada uno de estos usos, vamos a hacer uso de la herramienta QREncode que tiene versión para cualquier sistema operativo y nos permitirá generar códigos QR de manera sencilla y rápida directamente desde la terminal.

Creación de códigos con QREncode

Podemos empezar con el ejemplo más básico, vamos a generar un código QR que contendrá un texto que se mostrará al usuario cuando lo escanee con su dispositivo móvil.


  qrencode -s 6 -l H -o text.png "Este QR Code fue creado por betazeta.dev"
  

Cada una de las opciones que se le pasan al comando qrencode tienen un significado específico:

  • -s 6 indica el tamaño de los módulos del código QR.
  • -l H indica el nivel de corrección de errores.
  • -o text.png indica el nombre del archivo de salida.

Puedes consultar la documentación para ver la información completa y actualizada. Si le asignamos una URL, automáticamente, por su formato, el código QR nos redirigirá a la página web que le hayamos asignado tras escanearlo:


  qrencode -o url.png "https://betazeta.dev"
  

En este caso, el comando qrencode genera un código QR en formato PNG con la URL https://betazeta.dev. Al escanear el código con un dispositivo móvil, aparecerá un botón que abrirá el navegador y redirigirá a nuestra página web tras pulsarlo. Para crear un código QR que nos conecte a una Wifi podemos utilizar el siguiente comando con las credenciales de la misma(no se mostrarán al usuario al escanearse):


  qrencode -o wifi.png "WIFI:T:WPA;S:BetaZetaNetwork;P:Password;;"
  

Con respecto al tema del email y la transferencia de datos de contacto, podemos generar un código QR que al escanearlo abra el cliente de correo electrónico predeterminado del dispositivo que lo escanee con un destinatario y asunto predefinidos.


    qrencode -o mail.png "mailto:hi@betazeta.dev ?subject=¡Hola!&body=¡Hola!%20Me%20ha%20gustado%20mucho%20tu%20artículo%20sobre%20códigos%20QR."
    

En este caso, el comando qrencode genera un código QR en formato PNG con la dirección de correo electrónico hi@betazeta.dev y el asunto y cuerpo del email predefinidos. Al escanear el código con un dispositivo móvil, nos permitirá abrir el cliente de correo electrónico del dispositivo y se creará un nuevo email con el destinatario y asunto especificados. Para finalizar, vamos a generar un código QR que contenga información de contacto en formato vCard. Para evitar problemas con el formato y la codificación a través de la terminal vamos a crear primero un fichero vcard.txt con el siguiente contenido:


  BEGIN:VCARD
  VERSION:3.0
  N:BetaZetaDev;
  FN:BetaZeta Dev
  ORG:BetaZetaDev
  TITLE:SoftwareDevelopment
  TEL;WORK;VOICE:34689365453
  EMAIL;WORK;INTERNET:hi@betazeta.dev
  URL:https://betazeta.dev
  END:VCARD
      

Con el fichero creado podemos hacer que qrencode genere un código QR en formato PNG con la información de contacto para que luego aparezca el contacto en el dispositivo que lo escanee y pueda ser agregado a la agenda, llamar, enviar un email, etc.


  qrencode -o vcard.png < vcard.txt
  

El pipeline < vcard.txt se encarga de leer el contenido del fichero vcard.txt y pasárselo al comando qrencode para que genere el código QR con la información de contacto.

Estos son solo algunos ejemplos de cómo los códigos QR pueden ser creados y utilizados. Su versatilidad y facilidad de uso los convierten en una herramienta valiosa para crear experiencias interactivas y personalizadas, que pueden ser implementadas en una amplia variedad de contextos y aplicaciones.

Pero como desarrolladores hay una opción mucho más interesante para dotar de personalidad extra a nuestras aplicaciones y es crear códigos QR con información personalizada. Combinando la generación de códigos QR con la interpretación de textos en formato JSON, podemos crear códigos códigos que contengan información personalizada, como ids, nombres, o cualquier dato que nuestra app gestione. De esta forma, podemos interpretar estos datos en nuestras aplicaciones móviles para personalizar la experiencia del usuario.

Conclusión

En el próximo capítulo crearemos un ejemplo práctico de cómo interpretar códigos QR con información personalizada en una aplicación móvil mostrando una experiencia personalizada en la aplicación tras ser escaneada por el usuario. En resumen, los códigos QR son una herramienta versátil y poderosa que ha revolucionado la manera en que interactuamos con la información digital. Su capacidad para almacenar gran cantidad de datos en un formato compacto y su facilidad de uso los convierten en una herramienta valiosa para desarrolladores y usuarios.

¿Te ha servido esta información?

Tu apoyo nos permite seguir compartiendo conocimiento de calidad. Si alguno de nuestros artículos te han aportado valor, considera hacer una donación para mantener este espacio en marcha y actualizado. ¡Gracias por tu contribución! 😊

Artículos relacionados

Quizá te puedan interesar

December 1, 2023

Descubriendo Docker

Docker es una plataforma de virtualización que ofrece una metodología única para empaquetar y …

leer más

Nuestro trabajo

De concepto a realidad

project-thumb
Mantente al día con las últimas noticias tecnológicas y nuestro podcast semanal. BetaZetaNews
project-thumb
Hazte entender en múltiples idiomas con solo presionar un botón gracias a BuddyLingo. BuddyLingo
project-thumb
Aventuras sin límites generadas por IA dónde tus elecciones dan forma a la historia. LAIA
project-thumb
Crea historias sorprendentes con cada tirada, ¡la imaginación es tu única guía! Spark
project-thumb
Controla fácilmente y en profundidad las horas que dedicas a tu empleo y/ó proyectos. Sé dueño de tu tiempo. WorkIO