O serviço AWS Mobile Hub permite que você desenvolva de forma fácil e rápida aplicativos moveis. O intuito dessa sessão é mostrar serviços, os quais ajudarão nesse desenvolvimento, como serviços de autenticação, push, armanzenamento, backend, assim como testes em dispositivos reais.
2. Hoje o desenvolvimento de
aplicativos móveis...
Você tem que se focar em dois
tipos de componentes…
3. 1. As complexidades dos componentes
do backend que um aplicativo móvel
precisa
e
2. As incríveis funcionalidades que
vocês criam para que a sua
aplicação seja única
4. Os AWS Mobile Services fazem
simples as complexidades do
backend
5. Pra você se focar no que
realmente faze a sua aplicação
única!
16. AWS Mobile Services
ServerlessClient-Side
SDK
Mobile
Aware
O SDK tem
bibliotecas
client-side
para fazer
interfase
com os
serviços
utilizando
uma
mínima
quantidade
de código
O código é
automaticament
e otimizado para
gerenciar as
intermitências da
rede
Infraestrutura
totalmente
gerenciada
Provisionamento e
escalabilidade
automática
É só carregar o
seu código sem
rodar servidores
Códigonoservidor
Códigonocliente
Gerenciamentodeintermitênciaderede
AWS Mobile
Services
17. AWS Mobile SDK: Totalmente integrado
• Único mecanismo de autenticação sobe
todos os serviços
• Gerencia automaticamente intermitências da
rede
• Suporte multiplataforma: Andoid, iOS, Fire
OS, Unity, e JavaScript
• SDKs nativos, otimizados para SO móveis,
por exemplo o uso de arquiteturas de cache
local.
• Uso de memoria reduzido; selecione
somente os serviços que você precisa.
• Continuamente atualizado com as utimas
atualizações das plataformas
iOS Android Fire OS Unity
Xamarin
24. Amazon Cognito
Simplifies Identity and
Access Management
Acesse todos os
serviços da AWS
desde um dispositivo
móvel com segurança
Cross-device and
cross-platform sync
Implement security best
practices
“Os dados da sua aplicação seguros, disponíveis off-line e sincronizados entre
múltiplos dispositivos”
Sincronize os dados de
usuário entre diversos
dispositivos e
plataformas
Gerencie os seus
usuários como
identidades únicas entre
múltiplos provedores de
identidades
Or, Your Own
Auth
25. Provedores
de
identidades
Identidades
únicas
Joe Anna Bob
Qualquer
dispositivo ou
plataforma
Qualquer
Serviço AWS
Ajuda na implantação das melhores
práticas em segurança
Aceso a qualquer serviço AWS com segurança
desde um dispositivo móvel. Integração
simplificada com o AWS IAM.
Suporta múltiplos provedores de Log-In
Fácil integração com os principais provedores de
log-in para autenticação.
Usuários Únicos vs. Dispositivos
Gerencia identidades únicas. Reconhece
automaticamente usuários únicos entre diversos
dispositivos e plataformas.
Amazon Cognito Identity
Amazon
Mobile Analytics
Amazon
S3
Amazon
DynamoDB
Amazon
Kinesis
26. 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. 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
Get OpenID Token
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
OIDC Token
29. Amazon Cognito
Cloud Save and Sync
Armazena
dados e os
sincroniza
Qualquer
plataforma
iOS/Android/FireOS
Armazena dados de aplicação, preferencias
e estados
Armazene dados da aplicação e dispositivo na nuvem
Sincronização Cross-Device Cross-OS
Sincronização de dados de usuário e
preferencias entre múltiplos dispositivos com uma
línea de código.
Funciona off-line
Dados sempre armazenados primeiro num BD
SQLite local. Trabalha sem problemas quando a
rede tem intermitências ou off-line.
k/v data
Identity Pool
Sem Back End
Cliente do SDK simples, elimina a necessidade
de código server side.
30. Sincronização e dados entre múltiplos
dispositivos com o Amazon Cognito
Sincronize estados de
jogos entre
OS/devices
Transições de estado
(vincule múltiplas
contas)
Sincronize perfis de
Usuário entre
OS/devices/web
31. Integração da funcionalidade do Amazon
Cognito Sync é muito simples!
Inicialize o CredentialsProvider e o CognitoClient
Chame a sincronização do dataset
Crie ou abra o dataset e agregue chaves e 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);
32. Inicialize o AWSCognitoSyncClient
Chame a sincronização do dataset
Crie ou abra o dataset e agregue chaves e 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
Integração da funcionalidade do Amazon
Cognito Sync é muito simples!
36. Amazon Mobile Analytics
Escalável e com uma
generosa Free Tier
Foque-se nas métricas que são
importantes. Use os relatórios
disponíveis dentro dos seguintes
60 minutos de ter recebido os
dados da sua aplicação.
Rápido
Escale para milhões de
eventos por dia, de
milhões de usuários.
Você é dono dos seus
dados
“Colete e analise dados de uso da sua aplicação de forma simples y custo
eficiente”
Os dados coletados não
são compartilhados,
agregados ou
reutilizados.
37. Inicie o uso do Amazon Mobile Analytics
em três passos
Crie uma AWS, crie ou utilize um Amazon Cognito ID existente na
console de gerenciamento da AWS
Revise os relatórios de utilização e atividade das
sessões no console de gerenciamento da AWS em
minutos
Baixe e integre o Mobile SDK utilizando uma linha de
código (Android/FireOS, iOS)
38. Métricas importantes do
negocio
(com uma única linha 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
39. Acompanhe a retenção
A retenção de usuários e um
indicador importante para
julgar o resultado de uma
campanha de marketing,
introdução de uma nova
caraterística, mudanças na
interface, atualizações, etc.
Mobile Analytics prove quatro
gráficos para acompanhar
diariamente ou
semanalmente o ritmo do
retorno dos usuários, desde
a primeira utilização da
40. Quantidade de likes,
num artigo numa app
de noticias
Entender quanto um
jogador aborta por nível
de um jogo móvel.
Músicas reproduzidas
pelo usuário numa app
de música
Popularidade de um
item numa app de loja
virtual
Acompanhe Eventos
Personalizados
47. Amazon S3 Connector: Transfer Manager
S3 Connector
Carga multi-parte de medias (fotos, vídeos,
áudio)
Descargas tolerantes a falhos (ex. assets)
Não precisa de um backend
Tentativas automáticas
Funções de pause, resume, cancel
Otimizado para SO nativos
48. 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);
54. AWS Lambda
Auto Scaling
(nunca aprovisiona mais
ou menos do necessário)
Foque-se na lógica do
seu negocio, não na
infraestrutura. Carregue
o seu código e AWS
Lambda faze o resto.
Sem gerenciamento de
infraestrutura
Lambda escala a
infraestrutura segundo
seja necessário para
acompanhar a
quantidade de eventos
e pagar somente pelo
Traga o seu próprio
código
“Rode o seu código na nuvem, em resposta a eventos e escale sem gerenciar
servidor nenhum”
Inicialmente JavaScript,
Python e Java, porém, mais
linguagens no futuro. Crie
threads e processos, rode
scripts batch ou outros
executáveis.
55. Como utilizar um backend Lambda no seu aplicação
móvel
Inicialize o LambdaFactory e defina a interface
Chame a função
Criem / Carreguem a função Lambda na console de gerenciamento da
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
};
59. Amazon SNS
Cross-Platform
Mobile Push
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
Com o Amazon SNS, os desenvolvedores podem enviar push notifications para
múltiplas plataformas e notificar usuários móveis no mundo todo
Novas funcionalidades:
Entrega de métricas via
CloudWatch
Chame funções Lambda
desde notificações 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
60. Push confiável Precisa de Trabalho Constante
35 AWS EC2 m3.xlarge instances
Home-rolled code based on Tornado
6 Load
Balancers
Sempre tentando escalar
em quantidade de
processos e servidores
Lutando para maximizar o
througput no nível de
pacotes por segundo
Nunca com certeza
absoluta da quantidade de
push que foram enviados
ou descartados.
61. Agora Utilizando o Amazon SNS Mobile Push
De zero para +500m de
push notifications
diárias quase de um
dia pro outro
Mais rápido, confiável e
disponível
Fácil migração
$1 por milhão de
entregas
mobile push
10m
170m
500m
Day 1 Day 2 Day 3
Daily SNS Mobile Push
Deliveries (millions)
…Rising
64. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Amazon
Kinesis Recorder
Amazon
DynamoDB Mapper
Amazon S3
Transfer Mgr
Amazon
SQS Client
Amazon
SES Client
AWS Global Infrastructure (Regions, Availability Zones, Edge Locations)
Core Building Block
Services
Mobile Optimized
Connectors
Mobile Optimized
Services
Your Mobile App, Game, or Device App
AWS Mobile SDK, API Endpoints, AWS Management Console
Compute Storage Networking Analytics Databases
Integrated SDK
AWS Mobile Services
AWS Lambda
AWS Lambda
Functions
λ λ
λ
λ
65. 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
68. 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.
Teste o seu app em dispositivos reais na nuvem
da AWS
In minutes, view detailed,
actionable reports that
pinpoint bugs, performance
problems, and other issues.
YOUR
APP +
69. Custo e complexidade de testes efetivos
Manter um laboratório de aparelhos é um
grande desafio.
Manter a frota atualizada em HW e SW
Testes manuais não são escaláveis
Automação da frota é complexa
69