Mejorando la Skill de Alexa Bus Salamanca
En este post comparto las mejoras realizadas en la skill de Alexa "Bus Salamanca", así como algunos aprendizajes y retos encontrados durante el proceso.
- Añadí un GitHub Workflow para desplegar automáticamente en AWS Lambda, incluyendo el control de credenciales mediante IAM.
- Ahora existen dos Lambdas: una para dev y otra para prod.
- Los errores de AWS han sido muy descriptivos cuando los roles no funcionaban, lo que me permitió solucionarlos rápidamente.



- Aprendí que tener dos entornos (dev y prod) en la skill es sencillo.
- Para publicar la skill de desarrollo, hay que indicar la Lambda de producción.
- Utilicé APL de Alexa para mejorar la interfaz gráfica de la skill.
- La interfaz se adapta a diferentes dispositivos, como el Echo Spot (pantalla circular pequeña) y otros dispositivos más grandes como el Echo Show.
- Ahora la información útil se muestra de forma clara, requiriendo hacer scroll solo si es necesario.

- Usé la Alexa Developer Console para diseñar la interfaz gráfica y asegurarme de que se adapta perfectamente a los diferentes dispositivos.

- También mejoré la pantalla inicial cuando no hay datos, solicitando la parada e indicando comandos de voz para consultar cualquier parada.

- Así se ven las próximas líneas de autobús:

- Descubrí que la Lambda se ejecuta en otro huso horario, por lo que es necesario adaptarse a ello.
- Tras conseguir la primera aprobación de la skill, la segunda apenas tardó una hora en ser aprobada.
- Dediqué más tiempo a probar la skill para poder añadir mejores recomendaciones en dispositivos como el Echo Show, por ejemplo, recomendar consultar el autobús una vez guardada la parada.
- Mejoré el estado inicial la primera vez que se muestra la skill, para solicitar la información de forma más intuitiva.
- Intenté optimizar la skill, pero hay dos puntos principales difíciles de mejorar: contactar con el servicio externo y transformar el XML en JSON.
- Mejoré la información que se muestra en caso de que el servicio no responda o no haya datos, evitando que la skill se quede colgada y proporcionando siempre una respuesta al usuario.
- Añadí una forma sencilla de saber si la skill es dev o prod, añadiendo un emoji al título de las cards que se muestran en pantalla.
Estoy considerando publicar el código en GitHub, pero no tengo claro si es legal hacerlo, ya que la API de Salamanca no es pública y no sé si puedo compartirla.
Puedes probarla desde aquí Bus Salamanca en Amazon Alexa