Android & Internet of things with Google Cloud Messaging and AppEngine - Orlando and Pulcini

1,123 views

Published on

Slides from Antonino Orlando and Simone Pulcini talk @ codemotion roma 2014

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,123
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Android & Internet of things with Google Cloud Messaging and AppEngine - Orlando and Pulcini

  1. 1. ROME 11-12 april 2014ROME 11-12 april 2014 Android & Internet of Things with Google Cloud Messaging and AppEngine GDG Roma L-AB Antonino Orlando Simone Pulcini e il GDG Roma L-AB
  2. 2. ROME 11-12 april 2014 Chi siamo: GDG Roma L-AB http://goo.gl/QG40Os http://goo.gl/6QRlP9 http://goo.gl/cEF2Yn Il nostro prossimo evento:
  3. 3. ROME 11-12 april 2014 • orlando.antonino@gmail.com • http://it.linkedin.com/in/orlan doantonino • https://plus.google.com/+Anto ninoOrlando Chi siamo: Antonino Orlando
  4. 4. ROME 11-12 april 2014 • simone.pulcini@gmail.com • http://www.linkedin.com/i n/simonepulcini • https://plus.google.com/+S imonePulcini Chi siamo: Simone Pulcini
  5. 5. ROME 11-12 april 2014 NFC • RFID (Radio Frequency Identification) • permette una comunicazione bidirezionale: entro un raggio di 4 cm • opera alla frequenza di 13,56 MHz e può raggiungere una velocità di trasmissione massima di 424 kbit/s.
  6. 6. ROME 11-12 april 2014 Google Cloud Messaging 1) Invio un messaggio a gcm 2) GCM inoltre al device
  7. 7. ROME 11-12 april 2014 Workflow del lab 1) Il dispositivo rileva un tag 2) il dispositivo notifica l'evento al nostro backend 3) il backend chiede l'invio della notifica a GCM 4) GCM inoltra la notifica all'utente
  8. 8. ROME 11-12 april 2014 Stack software e sorgenti • ADT Bundle più Plug-in Eclipse per GAE • Google Play Services (da Android SDK Extras) • Android Support Library (da Android SDK Extras) • github.com/orlando-antonino/GdGLAb_IoT- AppEngine_TODO.git • github.com/orlando-antonino/SendByNFC.git • github.com/spulci/codemotion2014/tree/master/Co demotionIOTLabBackend
  9. 9. ROME 11-12 april 2014 • All'interno del progetto possiamo trovare i passi di sviluppo usando la view “tasks” di eclipse • Abbiamo un tempo definito per eseguire ogni “todo” • siamo qui per sviluppare insieme... fate domande Lab How-to
  10. 10. ROME 11-12 april 2014 • Richiamiamo il metodo all'interno dell'activity per richiedere un registrationID al server GCM • http://developer.android.com/ reference/com/google/androi d/gms/gcm/GoogleCloudMess aging.html Step 1: registration ID
  11. 11. ROME 11-12 april 2014 • Inseriamo nelle S.P.: 1. property_reg_id 2. property_app_version • recuperiamo dalle S.P. il registrationID memorizzato precedentemente: 1. property_reg_id http://developer.android.com/referen ce/android/content/SharedPreferenc es.html Step 2: Shared Preferences
  12. 12. ROME 11-12 april 2014 • inseriamo il codice necessario a richiedere il registrationID al GCM server • richiamiamo il metodo all'interno dell'activity per memorizzare localmente il registrationID • inviamo il registrationID al backend AppEngine http://developer.android.com/reference/co m/google/android/gms/gcm/GoogleCloudM essaging.html Step 3: GCM
  13. 13. ROME 11-12 april 2014 • Entity: lightweight persistence domain object • Annotazioni JPA usate: @Entity, @Id, @GeneratedValue • https://developers.google.com/a ppengine/docs/java/datastore/jp a/overview-dn2?hl=it Step 4: creazione di un Entity Bean
  14. 14. ROME 11-12 april 2014 • Pattern DAO • Diversi servizi già realizzati • Il servizio da realizzare rende persistente un ClientBean • https://developers.google.co m/appengine/docs/java/data store/jpa/overview-dn2?hl=it Step 5: servizio addClientBean
  15. 15. ROME 11-12 april 2014 • Esponiamo un servizio sul web in modo da poterlo chiamare da remoto (dal client android) • Annotazioni: @Api, @ApiMethod (con attributi) • https://developers.google.co m/appengine/docs/java/endp oints/ Step 6: creazione Cloud Endpoint
  16. 16. ROME 11-12 april 2014 • Radice progetto (tasto destro): Google -> Generate Cloud Endpoint Client Library • Innestiamo il codice nel client Android sistemando i jar generati e chiamando le API (lo abbiamo fatto noi per voi) Step 7: generiamo e integriamo… (1/2)
  17. 17. ROME 11-12 april 2014 Step 7: generiamo e integriamo… (2/2) • riempiamo la segnatura remota per l'operazione addclient che prende un ClientBean popolato dal suo registrationId e lo memorizza sul datastore invocando il metodo remoto • lanciamo l'operazione remota di cui abbiamo preparato la segnatura di cui sopra: viene aperta una connessione HTTP e viene effettuata la chiamata
  18. 18. ROME 11-12 april 2014 E per finire….GCM server side • GCM può essere interrogato via HTTP o XMPP • Lato server in HTTP abbiamo usato l’implementazione del progetto http://code.google.com/p/gcm/source/brows e/#git%2Fgcm-server • I formati della message request e altra documentazione: https://developer.android.com/google/gcm/ht tp.html
  19. 19. ROME 11-12 april 2014 GRAZIE A TUTTI!

×