Llegamos a ustedes gracias a:



Reportajes y análisis

Primer vistazo: AWS Mobile Hub llena los baches

[09/11/2015] Cuando hice una revisión de Mobile SDK de Amazon y los productos competidores de Microsoft y Google en marzo, dije: "Si bien la AWS Mobile SDK hace lo que se propone hacer, no es para principiantes, programadores JavaScript o débiles de corazón". Y concluí que, "AWS Mobile SDK podría ser una buena opción para los desarrolladores de aplicaciones nativas que ya tienen un compromiso con los servicios de Amazon. Si lo que quiere son MBaaS fáciles de aprender y fáciles de usar, busque en otra parte".

Independientemente de si los ingenieros de AWS escucharon mis críticas o no, las han abordado en el nuevo Amazon Mobile Hub, que actualmente es un servicio de nivel beta. En lugar de fijar los elementos a nivel de los servicios básicos, Amazon decidió añadir una capa de integración con (¡oh!) una interfaz de usuario que se explica por sí misma.

Como se muestra en la Figura 1, AWS Mobile Hub está organizado en cinco pantallas de nivel superior. Cada pantalla conduce a una funcionalidad adicional.

Figura 1: AWS Mobile Hub presenta una interfaz gráfica útil que le guía a través de los pasos para la construcción de su aplicación. El Hub está organizado en cinco pantallas de nivel superior, cada una de los cuales lleva a una funcionalidad adicional.
Amazon Mobile Hub

La pantalla de configuración, que se muestra en la Figura 2, le permite configurar hasta seis áreas de funcionalidad para su aplicación: inicio de sesión del usuario, inserción de notificaciones, entrega de aplicaciones de contenido, almacenamiento de datos de usuario, análisis de aplicaciones, y la lógica de la nube. Las marcas de verificación verdes indican las funciones que han sido configuradas.

Figura 2: La pantalla Configurar le permite configurar el inicio de sesión de usuario, inserción de notificaciones, entrega de aplicaciones de contenido, almacenamiento de datos de usuario, análisis de aplicaciones, y la lógica de la nube.
Amazon Mobile Hub

Para esta aplicación de muestra en particular he omitido la inserción de notificaciones porque son algo difíciles de configurar. Tiene que salir de Apple y Google, configurar los motores nativos de inserción de notificaciones, y luego volver y agregar las credenciales a AWS Mobile Hub, como se muestra en la Figura 3.

Figura 3: Amazon SNS necesita sus credenciales de inserción de notificación de Android e iOS. Amazon realmente hace un trabajo decente al explicar dónde y cómo obtenerlos.
Amazon Mobile Hub

AWS Mobile Hub es compatible actualmente con Facebook e inicios de sesión personalizados para los usuarios de su aplicación, y soportará inicios de sesión de Amazon, Google y Twitter en el futuro, como se puede ver en la Figura 4. Mobile Hub ya puede generar la lógica para inicios de sesión opcionales y requeridos. Cuando el usuario no inicia sesión, la aplicación utiliza Cognito para generar credenciales autenticadas anónimas.

Figura 4: Hub Mobile eventualmente soportará cinco fuentes de inicio de sesión. Actualmente ya puede generar la lógica de inicios de sesión opcionales y requeridos.
Amazon Mobile Hub

Mobile Hub puede configurar la entrega de contenido -por lo general para las imágenes que proporciona y quiere que se descarguen en el cliente bajo demanda -en un cubo de S3 o en CloudFront, como se muestra en la Figura 5. S3 es más barato, pero limitado a una sola zona disponible. CloudFront le da un mejor rendimiento si tiene usuarios distribuidos globalmente, pero le costará un poco más cuando tenga que escalar.

Figura 5: Mobile Hub puede configurar el almacenamiento de contenido en un cubo de S3 o en CloudFront. S3 es más barato; CloudFront le da un mejor rendimiento si tiene usuarios distribuidos globalmente.
Amazon Mobile Hub

Si permite el almacenamiento de datos del usuario, Mobile Hub establece una combinación integrada de archivo (medios y documentos) de almacenamiento en S3 y almacenamiento par en Cognito Sync. El acceso a la carpeta de un usuario en el cubo S3 se limita a la clave almacenada en Cognito bajo el ID autenticado o no autenticado. Cognito se emplea normalmente para los datos de perfil del usuario. Si habilita App Analytics, puede ver un panel similar a la demo en la figura 6 después de que su aplicación ha estado en uso. El tablero de instrumentos se actualiza en lotes, más o menos por hora. Comprobé que esto funciona para las aplicaciones de muestra de iOS y Android.

Figura 6: Si habilita App Analytics, puede ver un panel similar a esta demo después de que ha utilizado su aplicación. El tablero de instrumentos se actualiza en lotes, más o menos por hora.
Amazon Mobile Hub

La lógica que se ejecuta en la nube de Amazon Lambda le da funciones de back-end que puede llamar desde su aplicación, como se muestra en la Figura 7. Lambda le cobra por la llamada a la API y el consumo de la CPU. De hecho, el atractivo aspecto de Node.js con la puerta de enlace de la API RESTful que he añadido desde el menú preconfigurado de Lambda no se "pega" cuando generé la aplicación. Ese parece ser un error beta, a menos que haya omitido un paso cuando hice la configuración.

Figura 7: La lógica que se ejecuta en la nube de Amazon Lambda le da funciones de back-end que puede llamar desde su aplicación. Lambda le cobra por la llamada a la API y la CPU consumida.
Amazon Mobile Hub

Si su aplicación tiene una vista Web, es posible que desee poblarla de una instancia Express. O es posible que desee enviar solicitudes HTTP (S) a su sitio web móvil existente, que puede estar ejecutándose en cualquier lugar.

Mobile Hub puede generar código nativo para una aplicación de prueba en Objective-C para iOS y Java para Android. El código no compila en Xcode 6.4, pero se adapta bien en Xcode 7.0.1 y Xcode 7.1 beta 3, como podemos ver en la Figura 8. La aplicación de ejemplo ya tiene las identificaciones y claves correctas de Amazon insertadas en sus constantes.

Figura 8: La aplicación de prueba Amazon Mobile Hub, escrita en Objective-C, ya tiene los Ids y claves correctas de Amazon insertadas en sus constantes. El código requiere Xcode 7.0 o posterior para construirse sin errores.
Amazon Mobile Hub
Figura 9: La pantalla principal de la aplicación de demostración iOS. Los colores en esta imagen son de color amarillo sobre negro, porque he seleccionado que la preferencia en clave/valor de la demo.
Amazon Mobile Hub

La pantalla principal de la aplicación de muestra iOS, que se muestra en la Figura 9, es una lista de íconos y texto. La selección de objeto se desliza en el panel que muestra la función correspondiente. Los colores en esta imagen son amarillo sobre negro, porque he seleccionado esa preferencia en clave/valor de la muestra.

La aplicación Android nativa generada por Mobile Hub, en Java, tiene las mismas características que la aplicación de iOS, pero parece y se siente como Android. El fondo de color naranja en la cabecera de la figura 10 es el esquema de colores por defecto. Si bien previamente establecí una preferencia de colores diferente en la aplicación iOS, no estaba registrado, por lo que el usuario de Android no puede ver las preferencias o datos del usuario iOS. Este comportamiento es correcto.

Figura 10: La aplicación nativa para Android generada por el Hub móvil tiene las mismas características que la aplicación de iOS, pero se ve y siente como Android. El fondo de color naranja en la cabecera es el esquema de colores por defecto.
Amazon Mobile Hub

En general, creo que la versión beta de Amazon Mobile Hub se perfila muy bien. Hay algunas características no implementadas y algunos errores probables, pero en general Mobile Hub hace que sea mucho más fácil ensamblar aplicaciones nativas iOS y Android que se basan en servicios de back-end de Amazon. Es un gran paso adelante.