Aplicación con Swift 4.1 que identifica las zonas mediante iBeacons

Índice de contenidos

1. Introducción

En este tutorial vamos a aprender a crear una aplicación capaz de detectar las diferentes zonas preestablecidas mediante las balizas iBeacons. Se trata del Kit Kontakt iBeacon de Apple, compuesto por 5 balizas que emiten una señal bluetooth de baja energía. Cada uno tiene 3 parámetros importántes: UUID , Major y Minor.

  • UUID: Identificador único universal de un iBeacon
  • Major: Identificador de un subgrupo de iBeacons
  • Minor: Identificador específico de un iBeacon

2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware:
    • Portátil MacBook Pro 15’ (2.3 GHz Intel Core i7, 16GB DDR3)
    • iPhone 6S 4.7’ (Chip A9, 2GB RAM)
  • Sistema Operativo:
    • Mac OS High Sierra 10.13.4
    • OS 11.3
  • Entorno de desarrollo: Xcode 9.4 beta

3. Petición de permisos de localización

Es importante informar y requerir el permiso de localización al usuario, y para ello debemos añadir dos parámetros más en la lista de “Info.plist”.

  • Privacy – Location Always and When In Use Usage Description
  • Privacy – Location When In Use Usage Description

4. Creación de interfaz

En el fichero de “Main.storyboard”, agregamos 3 “Image View” y nombramos cada una con una letra.

Debería de tener este aspecto:

Debemos importar la librería CoreLocation y además implementar el protocolo CLLocationManagerDelegate en la clase “ViewController.swift”. Vamos a declarar un locationManager para utilizarlo poseteriormente en la petición de permisos y el escaneo de iBeacons. El código quedaría así:

ViewController.swift

5. Creación de una región en base a los datos de los iBeacons

Creamos un método encargado de asignar los valores específicos de nuestro kit de iBeacons. Para saber estos datos hay que entrar al Panel Kontak en el enlace: https://panel.kontakt.io/signin en el cual, anteriormente, se haya registrado el producto.

En este ejemplo, únicamente necesitaremos el UUID del kit, y el valor de Major de cada iBeacon. Finalmente comenzará el escaneo en la región definida.

6. Lanzamiento del escaneo de iBeacons

Lo siguiente, es implementar el método locationManager, para verificar si el usuario ha concedido los permisos de localización y llamar al método anterior.

6. Identificación de zonas

Por último, queda instalar la aplicación, distribuir los iBeacons y probar la aplicación. El aspecto final:

6. Conclusiones

Si bien es cierto que, la tecnología basada en iBeacons es útil y atractiva, ya que requiere de pocas herramientas para su funcionamiento, hay que destacar que la precisión en el cálculo de la distancia entre el teléfono y las balizas deja mucho que desear. Por lo tanto, no debe estar destinado a un uso que requiera exactitud.