tdc 2014 - tudo sobre gcm push notifications
DESCRIPTION
Palestra apresentada no TDC 2014 na trilha de Android sobre GCM Push Notifications, o serviço do Google para envio de mensagens do server para o app.TRANSCRIPT
Tudo sobre GCM Push Notifications
SuelenGC
Suelen GC
Desenvolvedora & Instrutora
github.com/suelengcsuelengc.com
GCMServiço do Google que permite enviar dados do servidor para o aplicativo android.
http://developer.android.com/google/gcm/index.html
novis?novis? novis?
novis? novis?
novis?novis? novis?
novis? novis?
Qual a periodicidade para buscar informações no servidor?
Já chegou a informação??
chegou?agora chegou??
e agora?
e agora??
chegou???
C A L A D O O O ! ! ! !
novis?novis? novis?
novis? novis?
Como fazer isso de forma performática?
novis?novis? novis?
novis? novis?
Meu servidor está preparado para todas as request’s que irá receber?
Ok, o inverso seria…?
Chegou algo! !Vem pegar.Chegou algo! !Vem buscar.
Chegou algo! !Vem pegar.
Como o servidor saberá quais são os devices que tem o app instalado?
Chegou algo! !Vem pegar.
Seu servidor vai aguentar fazer este monte de conexão direta com devices?
Chegou algo! !Vem pegar.
Ao invés disso ocorrer…
Chegou algo! !Vem pegar.
Google Cloud Message
Colocaram uma camada a mais…
Podemos enviar de 2 formas as informações do
server para o device/app
Chegou um email! Vem pegar.
Chegou + posts! Vem pegar.
Chegou + posts! Vem pegar.
Outros app aqui…
send-to-sync
Chegou algo! !Avise aos app’s.
Chegou algo! !Vão buscar.
Me dá! Me dá! Me dá! Me dá!Me dá!
Outros app aqui…
payload
Chegou nova mensagem. Tó!
Chegou nova mensagem. Tó!
Chegou nova mensagem. Tó!
Entregue aos !app’s.
send-to-sync payloadUpstream/
Downstream de mensagens
Apenas downstream (cloud-to-device)
Ambos. (device-to-cloud, cloud-to-device)
Síncrono Sim (http post)
Não. (Conexão XMPP)
Comparativo de formas de envio
Como implementa?
ServidorAplicativo
ServidorAplicativo
https://code.google.com/apis/console
Passo 1: Habilitar e criar um projeto do GCM
https://code.google.com/apis/console
Passo 1: Habilitar e criar um projeto do GCM
http://developer.android.com/google/gcm/client.html#manifest
Passo 2: Configurar o AndroidManifest.xml
Passo 3: Implementar!
Quando iniciar o app ele se registrar para receber mensagens de determinado servidor
register
Quando iniciar o app ele se registrar para receber mensagens de determinado servidor
registration_id
(device + app)
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(app);
String registrationId = gcm.register(SERVER_ID);
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(app);
String registrationId = gcm.register(SERVER_ID);
dependencies { compile "com.google.android.gms:play-services:3.1.+" }
Context
Projeto criado no Console API's
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(app);
String registrationId = gcm.register(SERVER_ID);
Deve ser em outra thread!
Guarde seu registration_id para não precisar buscar novamente.
registration_id
(device + app)
registration_id
O device passa seu registration_id para o servidor
WebClient web = new WebClient(url_do_servidor);
web.post(registration_id)
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(app);
String registrationId = gcm.register(SERVER_ID);
registration_id’s 1, 2 e 3
regist
ration
_id =
1
registration_id = 2
registration_id = 3
registration_id’s 1, 2 e 3
regist
ration
_id =
1
registration_id = 2
registration_id = 3
registration_id’s 1, 2 e 3
BroadcastReceiver!para receber a mensagem
Configurando o Receiver
Mensagens ficam no GCM por até 4 semanas. É configurável. !
"De gratis"! Sem limite de uso. !
Suporte a partir da versão 2.2 do Android.
Detalhes
Suelen GCgithub.com/suelengcwww.suelengc.com.br
Obrigada!