3. 1. La complejidad de los
componentes de backend que una
aplicación móvil necesita
y
2. Las grandiosas funcionalidades
que ustedes crean para que su
aplicación sea única
15. AWS Mobile SDK: Completamente integrado
• Mecanismo común de autenticación ante
todos los servicios
• Automáticamente administra intermitencias
de red
• Soporte multi plataforma: Android, iOS, Fire
OS, Unity, and JavaScript
• SDKs nativos optimizados para SO móviles,
por ejemplo el uso de arquitecturas de caché
locales
• Consumo de memoria reducido; seleccione
solo los servicios que necesita
• Continuamente actualizado con las últimas
mejores de las plataformas
iOS Android Fire OS Unity
Xamarin
22. Amazon Cognito
Simplifies Identity and
Access Management
Acceda a todos los
servicios AWS desde
un dispositivo móvil
de forma segura
Cross-device and
cross-platform sync
Implement security best
practices
“Los datos de su aplicación seguros, disponibles offline y sincronizados entre
múltiples dispositivos”
Sincronice los datos de
usuario entre diferentes
dispositivos y
plataformas
Administre usuarios
como identidades
únicas entre múltiples
proveedores de
identidad
Or, Your Own
Auth
23. Proveedores
de
identidades
Identidades
únicasJoe Anna Bob
Cualquier
dispositivo o
plataforma
Cualquier
servicio AWS
Ayuda a implementar las mejores
prácticas de seguridad
Acceso a cualquier servicio AWS de forma
segura desde un dispositivo móvil. Integración
simplificada con AWS IAM.
Soporta múltiples proveedores de Log-
In
Fácil de integrar con los principales proveedores
de log-in para autenticación.
Usuarios Únicos vs. Dispositivos
Administra identidades únicas. Reconoce
automáticamente usuarios únicos entre
dispositivos y plataformas.
Amazon Cognito Identity
Amazon
Mobile Analytics
Amazon
S3
Amazon
DynamoDB
Amazon
Kinesis
24. Sign in with
Facebook
Or
Username
Password
Sign In
Or
Start as a guest
Autenticación vía
proveedores de
identidad de terceros
Amazon Cognito Identity
Acceso Guest
Su Pool de Usuarios
en Coignito
Amazon Cognito
Identity provee
credenciales
temporales para
acceder de forma
segura a sus recursos
AWS
DynamoDB
S3
API Gateway
25. Amazon Cognito Flow
(Any OpenID Connect Token)
Amazon Cognito ID
(Temp Credentials)
Amazon
DynamoDB
End Users
Developer
App with
AWS Mobile
SDK
Access
to AWS
Services
Amazon Cognito
Identity Broker
User Name
Password
Amazon Cognito ID,
Temp Credentials
Amazon S3
Amazon Mobile
Analytics
Amazon Cognito
Sync Store
AWS
Management
Console
OIDC Token
Pool ID
Role ARNs
User Authentication
System
(Running on AWS or not)
OIDC Token
27. Sincronización de datos entre múltiples
dispositivos con Amazon Cognito
Sincronice estados de
juegos entre
OS/devices
Transición de estado
(vincule múltiples
cuentas)
Sincronice perfiles de
Usuario entre
OS/devices/web
28. Amazon Cognito
Guarda en la nube y Sincroniza
Almacena
datos y los
sincroniza
Cualquier
plataforma
iOS/Android/FireOS
Almacena datos de aplicación, preferencias
y estados
Almacene datos de la aplicación y el dispositivo, en la
nube y únalos tras el login.
Sincronización Cross-Device Cross-OS
Sincronización de datos de usuario y preferencias
entre múltiples dispositivos con una línea de
código.
Funciona offline
Datos siempre almacenados primero en una BD
SQLite local. Trabaja sin problemas sin
conectividad o intermitencias de red.
k/v data
Identity Pool
Sin Back End
Cliente de SDK simple, elimina la necesidad de
código server side.
29. Modelo de sincronización Amazon Cognito
Identity Pool: Grupo de usuarios de la aplicación.
Puede ser compartido entre múltiples aplicaciones.
Identity: Un único usuario. Consistente entre
proveedores de identidad. Puede ser un usuario
”guest”.
Dataset: Por datos de agrupamiento de usuario. El
nivel más granular de sincronización. Hasta 1MB.
Record: Par de Llave - Valor.
AWS Account
Dataset
Identity
Identity
Identity
Dataset
Dataset
Identity
Pool
1:60
1:n
1:20
Dataset
Dataset
Record
1:1024
Usted
Su aplicación
Usuarios de su
aplicación
Contenedor
de datos de
usuario.
Dato del usuario
30. Integrando la funcionalidad Amazon Cognito
Sync es extremadamente simple
Inicialice el CredentialsProvider y el CognitoClient
Llame la sincronización en el dataset
Cree o abra el dataset y agregue llaves y valores
provider = new CognitoCachingCredentialsProvider (context, AWS_ACCOUNT_ID,
COGNITO_POOL_ID, COGNITO_ROLE_UNAUTH,
COGNITO_ROLE_AUTH, Regions.US_EAST_1);
cognito = new CognitoSyncManager (context, Regions.US_EAST_1, provider);
dataset.synchronize(new SyncCallback(){..});
cognito.openOrCreateDataset(datasetName);
dataset.put(key, value);
31. Integrando la funcionalidad Amazon Cognito
Sync es extremadamente simple
Inicialice el AWSCognitoSyncClient
Llame sincronizar en el dataset
Cree o abra el dataset y agrege llaves y valores
DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"];
NSString *value = [dataset readStringForKey:@"myKey"];
[dataset putString:@"my value" forKey:@"myKey"];
AWSCognitoSyncClient *syncClient = [[AWSCognitoSyncClient alloc]
initWithConfiguration: configuration];
[dataset synchronize];
iOS
38. Amazon
KinesisAWS
Mobile
SDK
Conectores Móviles Optimizados (AWS Mobile
SDK)
Amazon S3
Integrado con AWS Mobile SDK
Optimizado para SO nativos
Carga de medios en multi-partes
Descarga tolerante a fallas
Re intentos automáticos
Funciones de Pause, resume,
cancel
Sistema de batching genérico
Manejo de conexiones de red
intermitentes
Utilización de batería optimizada
Amazon
DynamoDB
39. Amazon S3 Connector: Transfer Manager in Android
// Creating the transfer manager
TransferManager = new TransferManager(credentialProvider);
// Upload image
Upload upload = transferManager.upload(BUCKET_NAME, fileName, file);
// Download image
Download download = transferManager.download(BUCKET_NAME, mKey,
file);
// Pause, and Resume
try {
PersistableDownload = download.pause();
//do something if we didn’t abort
} catch(PauseException e) {
//do something if we aborted
}
download = transferManager.resumeDownload(persistableDownload);
45. AWS Lambda
Auto Scaling
(nunca aprovisiona más o
menos de lo necesario)
Enfóquese en la lógica
de negocio, no en la
infraestructura. Cargue
su código y AWS Lambda
se encarga del resto.
Cero administración
Lambda escala la
infraestructura según
sea necesario para
atender la cantidad de
eventos y pagar según
el uso.
Traiga su propio
código
“Ejecute su código en la nube, en respuesta a eventos y escale sin administrar
ningún servidor”
Inicialmente JavaScript,
Python y Java, pero más
lenguajes en un futuro. Cree
threads y procesos, ruede
scripts batch u otros
ejecutables.
46. Responde a eventos en tiempo real
Mapee funciones locales a funciones lambda dentro del SDK
Dirija, filtre y enrute notificaciones de Amazon SNS
Aplique lógica personalizada a las preferencias de usuarios o estados de
un juego
Integración con AWS CloudTrail, métricas mejoradas y logs vía Amazon
CloudWatch
S3 event
notifications
DynamoDB
Streams
Amazon
Kinesis
events
Amazon
Cognito
eventsSNS
events
Custom
events
AWS Lambda
47. Agregando un backend Lambda a su aplicación móvil
es simple
Inicialice el LambdaFactory y defina la interfaz a las funciones
Llame la función
Cree / Cargue la función Lambda en la consola de administración AWS
lambda = new LambdaInvokerFactory(context, Regions.US_WEST_2, provider);
//interface
@LambdaFunction(functionName="cloudFunction”)
String localFunction(String nameInfo);
lambda.localFunction(“Hello From “); // this will output “Hello From Lambda”
exports.handler = function(event, context) {
context.done(null, event + 'Lambda'); // SUCCESS with message
};
51. Amazon SNS
Cross-Platform
Mobile Push
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
Con Amazon SNS, los desarrolladores pueden enviar push notifications a
múltiples plataformas y alcanzar usuarios móviles en todo el mundo
Nuevas características:
Entrega de métricas vía
CloudWatch
Llame funciones Lambda
desde notificaciones SNS
Amazon SNS Mobile Push
Android Phones and Tablets
Apple iPhones and iPads
Kindle Fire Devices
Android Phones and Tablets in China
iOS
Windows Desktop and Windows Phone
Devices
52. Push confiable a Escala Requiere Trabajo
Constante
35 AWS EC2 m3.xlarge instances
Home-rolled code based on Tornado
6 Load
Balancers
Tratando constantemente
de escalar tanto a nivel de
procesos como a nivel de
servidores
Luchando para maximizar
el througput a nivel de
paquetes por segundo
Nunca realmente seguro
de cuantos push fueron
enviados o descartados.
53. Ahora Usando Amazon SNS Mobile Push
De cero a +500m de
push notifications
diarias casi de un día
para otro
Más rápido, confiable y
disponible
Fácil migración
$1 por millón de
entregas
mobile push
10m
170m
500m
Day 1 Day 2 Day 3
Daily SNS Mobile Push
Deliveries (millions)
…Rising
61. Amazon Mobile Analytics
Escalable y con una
generosa capa gratuita
Enfóquese en las métricas que
importan. Use los reportes
disponibles dentro de los 60
minutos de haber recibido los
datos de su aplicación.
Rápido
Escale a millones de
eventos por día, de
millones de usuarios.
Usted es dueño de
sus datos
“Colecte y analice datos de uso de su aplicación de forma simple y costo
eficiente”
Los datos colectados no
son compartidos,
agregados o reusados.
62. Métricas clave de
negocio
(con solo una línea de
código)
1. Monthly Active Users
(MAU)
2. Daily Active Users
(DAU)
3. New Users
4. Daily Sessions
5. Sticky Factor
6. 1-Day Retention
7. Avg. Revenue per DAU
8. Daily Paying Users
9. Avg. Paying DAU
63. Rastree la retención
La retención de usuarios es
un indicador clave para
juzgar el resultado de una
campaña de marketing,
introducción de una nueva
característica, cambios en la
interfaz, actualizaciones, etc.
Mobile Analytics provee
cuatro gráficos para rastrear
diariamente o semanalmente
el ritmo de retorno de
usuarios, desde el primer
uso de la aplicación
64. Obtenga una mirada al comportamiento de
acciones específicas de sus usuarios en la
aplicación.
”Reports” provee una visión de qué tan
seguido los eventos personalizados
ocurren. Sus datos agregan contexto con
atributos y métricas para cada evento
personalizado.
Ejemplos:
Número de likes, por
artículo en una app de
noticias
Entender qué tanto el
jugador aborta por nivel
de un juego móvil.
Número de canciones
reproducidas por
usuario en app de
música
Popularidad de un ítem
en una app de tienda
virtual
Rastree Eventos
Personalizados
65. Costo y complejidad de test efectivos
Mantener un laboratorio de dispositivos es
todo un desafío.
• Mantener flota actualizada en HW y SW
Test manuales son imprácticos
Automatización de la flota de dispositivos es
muy compleja.
65
66. Upload your Android, iOS, or Fire
OS app, configure a test, and
select devices.
We simultaneously test
your app across your
selected devices in our
datacenters.
Testing your app on real devices
In minutes, view detailed,
actionable reports that
pinpoint bugs, performance
problems, and other issues.
YOUR
APP +
68. AWS Mobile Hub
1. Single integrated console
2. Pre-built features
3. Auto-provisioned services
4. Auto-generated app
Result: Build apps on AWS in minutes