• slidebg1

Introducción a SIRIKIT


Muchas son las expectaciones que causa cada año entre los desarrolladores de apple la conferencia anual dedicada a ellos en exclusiva. Si, hablamos de WWDC, donde este año las principales novedades son iOS 10, macOS sierra , SWFIT 3 y watchOS 3.

Pero centrémonos en el operativo móvil, en este caso iOS 10. iOS 10 SDK incluye nuevas apis y nuevos servicios que activan y ponen al servicio de los desarrolladores nuevas características que  sin duda empiezan a ser reclamadas por los usuarios por su facilidad de uso y habilidad para ganar tiempo . Es por eso, que una de las protagonistas de este año que ha captado muchas miradas es el nuevo framework de SIRI, llamado SIRIKIT. Y¿a que se debe esta expectación?

Como sabemos SIRI es el asistente de voz que apple lleva usando desde el año 2010 integrado en sus sistemas y que permite al usuario ayudarle con las cosas de su día a día, como enviar mensajes, hacer llamadas, reservar mesa en tu restaurante preferido, llamarte a un taxi, y un largo etcétera de cosas, y todo esto hablándole como si lo hicieras a un amigo.

Pero para los desarrolladores había un problema. SIRI sólo podía utilizarse con las aplicaciones que ya venían instaladas en el sistema. Digamos que era como una caja cerrada donde solo los de cupertino podía acceder a ella. Debido  a esto, desde hace ya un tiempo, los desarrolladores llevan pidiendo que SIRI se pudiera integrar en las aplicaciones de terceros, y para este año, todas esas suplicas han sido escuchadas.

Pero, ¿significa eso que SIRI puede integrarse en cualquier aplicación para hacer cualquier cosa? Desafortunadamente hemos de decir que no. SiRIKIT no puede usarse para hacer cualquier cosa.

Solo puede usarse para los siguientes servicios o, siendo puristas con la nomenclatura, dominios:

  • envío de mensajes en apps de mensajería
  • establecer llamadas de voz sobre IP
  • pagos
  • ejercicios de entrenamiento
  • búsqueda de fotos
  • encargar un recorrido (es decir, pedir un Uber, un taxi…).
  • carplay

Y ,¿por que solo a estos dominios? podríamos preguntarnos. Porque al igual que sucede con la multitarea, por el bien de la estabilidad y autonomía energética del terminal, solo han de poder hacerse ciertas actividades concretas que no afecten al rendimiento de nuestro dispositivo.

¿QUE HEMOS DE TENER PRESENTE?

De la misma manera que sucede con la activación de mapas, uso del gps, o cualquier servicio que necesite de otras aplicaciones del sistema, SIRI requiere permiso para ser activado en nuestras apps.

SIRIKIT se compone de 4 pasos:

  1. El habla, que seria las instrucciones que recibe siri por parte del usuario
  2. La intención, que define la acción que hemos de realizar
  3. La acción
  4. La respuesta. Esta respuesta se devuelve a través de la extensión de la app que a su vez devuelve una interfaz de usuario que puede ser personalizada.

Para hacer todo este proceso posible y que Siri funcione, Apple ha creado dos nuevos tipos de extensiones para el sistema: las extensión de intención (intent extension) y la extensión de la UI de la intención (intent UI extension).

La primera,es el controlador o la vía de comunicación entre app y Siri para gestionar todo el proceso. Y es nuestra app quien ha de crearlo.

La extensión de intenciones es la base de SiriKit y permite varias instancias a la vez, actúa en segundo plano cuando Siri está activo e implementa los métodos de resolución, respuesta y manejo de todo el proceso.

En el caso de las extensiones de UI de intenciones, podemos dar una experiencia de uso personalizada proporcionando un UIViewController específico que creemos en cada una de las respuestas que partan de nuestra app hacia Siri.Podemos incluso cambiar los elementos de interfaz de Siri en algunos casos para mejorar la experiencia. Lo que sí hemos de tener en cuenta es que estas vistas no son interactivas, aunque sí podemos usar animaciones u otro tipo de contenido dinámico.

Un ejemplo

Cualquier petición que realicemos, será procesada por Siri para obtener todos aquellos parámetros que necesite. Veamos un ejemplo.

Imaginemos la petición: “Oye Siri, envía a Antonio 10 euros con Twip por el cine de ayer”. El análisis en conjunto de las palabras “envía” e indicar una cantidad de dinero activa el dominio “pagos”. La intención será: “enviar un pago” (es como si fuera el nombre de la función que va a ejecutarse). Los parámetros: la app es “Twip”, el destinatario del pago “Antonio” (lo buscará en la agenda y si no lo reconoce Siri por su cuenta pedirá más detalles para tener más claro este parámetro), la cantidad del pago es 10 y la divisa “EUR”. Además, tiene en cuenta una nota: “por el cine de ayer”. Con ese contenido, ya sabe que acción tomar y podrá llamar a la lógica de nuestra app, a la extensión que hayamos declarado en ella que recibe estos parámetros y que tiene como función de entrada “enviar un pago”.

Conclusión

Como vemos las posibilidades con Siri son bastante extensas, y algo que hay que tener muy presente son las diferentes formas en las que SIRI espera la interacción por parte del usuario. Pero la funcionalidad de Siri, en rasgos generales, es multi-idioma y lo que hagamos a nivel de funcionalidad, servirá en cualquier idioma sin problema, porque al final el propio Siri es el que asocia los verbos o expresiones al nombre de las acciones concretas, que siempre son los mismos. Da igual que digamos “Envía un Whatsapp” en inglés, español o alemán… Siri siempre enviará la acción apropiada.

Toda esta información ha sido sacada de los siguientes enlaces, y si queremos consultar código, hay unos ejemplos muy interesantes:

https://applecoding.com/guias/asi-funciona-sirikit

https://applecoding.com/analisis/siri-esto-es-lo-que-podra-hacer-ios-10

Públicado el 21/07/2016

Comparte este post:

CATEGORÍAS: Actualidad Desarrollo 

TAGS: APPLE SIRI