TDC 2014 - Tudo sobre GCM Push Notifications

1,582 views

Published on

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.

Published in: Mobile

TDC 2014 - Tudo sobre GCM Push Notifications

  1. 1. Tudo sobre GCM Push Notifications SuelenGC
  2. 2. Suelen GC Desenvolvedora & Instrutora github.com/suelengc suelengc.com
  3. 3. GCM Serviço do Google que permite enviar dados do servidor para o aplicativo android. http://developer.android.com/google/gcm/index.html
  4. 4. novis? novis? novis? novis? novis?
  5. 5. novis? novis? novis? novis? novis? Qual a periodicidade para buscar informações no servidor?
  6. 6. Já chegou a informação?? chegou? agora chegou?? e agora? e agora?? chegou???
  7. 7. CALADOOO !!!!
  8. 8. novis? novis? novis? novis? novis? Como fazer isso de forma performática?
  9. 9. novis? novis? novis? novis? novis? Meu servidor está preparado para todas as request’s que irá receber?
  10. 10. Ok, o inverso seria…?
  11. 11. Chegou algo! ! Vem pegar. Chegou algo! ! Vem buscar.
  12. 12. Chegou algo! ! Vem pegar. Como o servidor saberá quais são os devices que tem o app instalado?
  13. 13. Chegou algo! ! Vem pegar. Seu servidor vai aguentar fazer este monte de conexão direta com devices?
  14. 14. Chegou algo! ! Vem pegar. Ao invés disso ocorrer…
  15. 15. Chegou algo! ! Vem pegar. Google Cloud Message Colocaram uma camada a mais…
  16. 16. Podemos enviar de 2 formas as informações do server para o device/app
  17. 17. Chegou um email! Vem pegar. Chegou + posts! Vem pegar. Chegou + posts! Vem pegar. Outros app aqui… send-to-sync
  18. 18. Chegou algo! ! Avise aos app’s.
  19. 19. Chegou algo! ! Vão buscar.
  20. 20. Me dá! Me dá! Me dá! Me dá! Me dá!
  21. 21. Outros app aqui… payload Chegou nova mensagem. Tó! Chegou nova mensagem. Tó! Chegou nova mensagem. Tó!
  22. 22. Entregue aos ! app’s.
  23. 23. send-to-sync payload Upstream/ 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
  24. 24. Como implementa?
  25. 25. ServidorAplicativo
  26. 26. ServidorAplicativo
  27. 27. https://code.google.com/apis/console Passo 1: Habilitar e criar um projeto do GCM
  28. 28. https://code.google.com/apis/console Passo 1: Habilitar e criar um projeto do GCM
  29. 29. http://developer.android.com/google/gcm/client.html#manifest Passo 2: Configurar o AndroidManifest.xml
  30. 30. Passo 3: Implementar!
  31. 31. Quando iniciar o app ele se registrar para receber mensagens de determinado servidor register
  32. 32. Quando iniciar o app ele se registrar para receber mensagens de determinado servidor registration_id (device + app)
  33. 33. GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(app); String registrationId = gcm.register(SERVER_ID);
  34. 34. 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
  35. 35. GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(app); String registrationId = gcm.register(SERVER_ID); Deve ser em outra thread!
  36. 36. Guarde seu registration_id   para não precisar buscar novamente. registration_id (device + app)
  37. 37. registration_id O device passa seu registration_id para o servidor
  38. 38. WebClient web = new WebClient(url_do_servidor); web.post(registration_id) GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(app); String registrationId = gcm.register(SERVER_ID);
  39. 39. registration_id’s   1,  2  e  3  
  40. 40. registration_id  =  1 registration_id  =  2 registration_id  =  3 registration_id’s   1,  2  e  3  
  41. 41. registration_id  =  1 registration_id  =  2 registration_id  =  3 registration_id’s   1,  2  e  3   BroadcastReceiver! para receber a mensagem
  42. 42. Configurando o Receiver
  43. 43. 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
  44. 44. Suelen GC github.com/suelengc www.suelengc.com.br Obrigada!

×