CocoaHeads Rennes #10         Gwennin Le Bourdonnec     10 mai 2012                 Marc Audefroy       Les Notifications  ...
Vos Speakers• Gwennin Le Bourdonnec  	  Etudiant 3ème année à Supinfo Rennes• Marc Audefroy  Etudiant 2ème année à Supinfo...
Laboratoire Apple         Supinfo RennesRegroupement étudiant de passionés.Appronfondissement de la technoRéalisation de p...
Le ProblèmeComment interagir/informer l’utilisateur de nouveau                    contenu ?
Sommaire•   Qu’est ce qu’une Notification?•   Local et Push•   Les notifications locales•   Les notifications push•   Résumé
Qu’est-ce qu’une notification ?
• Préviens l’utilisateur    • Nouvelles données    • Action    • Évènement      (Calendrier…)    • …
Propriétés•   Badges•   Sons•   Alert View•   Informations « Custom »
Local VS Push ?Local Notification             Push Notification• Depuis le device             • Depuis un serveur• Se lanc...
Local Notification
Local Notification•   iOS4 – OSX 10.8•   Depuis le device•   Envoyé à une date et une heure précise•   64 notifications maxi...
Actions•   - (void)application:(UIApplication *)application    didReceiveLocalNotification:    (UILocalNotification *)noti...
Démo
Push Notifications
Push Notifications•   iOS 3 – OSX 10.7•   Depuis un serveur•   Nécessite une inscription du device
3 PlateformesLe Provider                   Le Device                  L’APNs
Chemin classique du     système de Push•   Récupération d’un “deviceToken” par    l’application auprès de l’APNs•   Inscri...
CommunicationDevice – APNs Inscription auprès du provider
Connexion du Device•   Le Device initialise la connexion•   Le Device valide le certificat de l’APNs•   L’APNs valide le ce...
Inscription du Device•   Le device se connecte à l’APNs•   l’APNs génére un “deviceToken” avec les    informations que lui...
Inscription du Device•   - (void)registerForRemoteNotificationTypes:    (UIRemoteNotificationType)types•   - (void)applica...
Démo
CommunicationProvider – APNs   Envois d’un push
Connexion du Provider•   Le Provider initialise la connexion•   Le Provider valide le certificat de l’APNs•   L’APNs valide...
Environnements•   Sandbox    gateway.sandbox.push.apple.com:2195•   Production    gateway.push.apple.com:2195
Envois d’un Push par le       Provider•   Le Provider se connecte à l’APNs•   Le Provider envoie le deviceToken et la    n...
La Notification•   Dictionnaire Json RFC 4627    {!         "aps" : {!             "alert" : {!              "         ""bo...
Packet Simple de Notification
Packet Amélioré de Notification
Packet d’Erreur          0     No Error Encountered          1     Processing Error          2     Missing device token   ...
Packet de FeedBack
Exemples de ProviderLibrary•   apnsphp ( code.google.com/p/apns-php/ )•   easy apns ( www.easyapns.com/ )•   apns-sharp ( ...
Exemples de ProviderServices•   Urban Airship ( urbanairship.com )•   AppNotify ( appnotify.com/developer )•   ...
CommunicationDevice – APNs  Réception du push
Reconnexion du Device•   Le device initialise la connexion•   L’APNs valide le certificat & le deviceToken    du device•   ...
Envois du push•   L’APNs transfère la notification au device    correspondant au deviceToken•   Le device transfère la noti...
Actions•   - (void)application:(UIApplication    *)application didReceiveRemoteNotification:    (NSDictionary *)userInfo• ...
Démo
Pour résumer
Pour aller plus loin•   La documentation Apple ( developer.apple.com )•   Raywenderlich.com ( http://    www.raywenderlich...
CocoaHeads Rennes #10      julien@cocoaheads.fr      10 mai 2012           thomas.dupont@cocoaheads.fr                    ...
Upcoming SlideShare
Loading in …5
×

CocoaHeads Rennes #10 : Notifications

623
-1

Published on

Slides de la session des cocoaheads Rennaise du 10 mai 2012. Session présentée par Marc Audefroy et Gwennin Le Bourdonnec.

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

  • Be the first to like this

No Downloads
Views
Total Views
623
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CocoaHeads Rennes #10 : Notifications

  1. 1. CocoaHeads Rennes #10 Gwennin Le Bourdonnec 10 mai 2012 Marc Audefroy Les Notifications Push et Locales
  2. 2. Vos Speakers• Gwennin Le Bourdonnec  Etudiant 3ème année à Supinfo Rennes• Marc Audefroy Etudiant 2ème année à Supinfo Rennes
  3. 3. Laboratoire Apple Supinfo RennesRegroupement étudiant de passionés.Appronfondissement de la technoRéalisation de projets divers
  4. 4. Le ProblèmeComment interagir/informer l’utilisateur de nouveau contenu ?
  5. 5. Sommaire• Qu’est ce qu’une Notification?• Local et Push• Les notifications locales• Les notifications push• Résumé
  6. 6. Qu’est-ce qu’une notification ?
  7. 7. • Préviens l’utilisateur • Nouvelles données • Action • Évènement (Calendrier…) • …
  8. 8. Propriétés• Badges• Sons• Alert View• Informations « Custom »
  9. 9. Local VS Push ?Local Notification Push Notification• Depuis le device • Depuis un serveur• Se lance à une date et une • Est envoyé lors de nouvelles heure précise données • Arrivée incertaine
  10. 10. Local Notification
  11. 11. Local Notification• iOS4 – OSX 10.8• Depuis le device• Envoyé à une date et une heure précise• 64 notifications maximum
  12. 12. Actions• - (void)application:(UIApplication *)application didReceiveLocalNotification: (UILocalNotification *)notification• - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
  13. 13. Démo
  14. 14. Push Notifications
  15. 15. Push Notifications• iOS 3 – OSX 10.7• Depuis un serveur• Nécessite une inscription du device
  16. 16. 3 PlateformesLe Provider Le Device L’APNs
  17. 17. Chemin classique du système de Push• Récupération d’un “deviceToken” par l’application auprès de l’APNs• Inscription du Device auprès du Provider• Reconnexion du Device auprès de l’APNs• Envois d’un Push par le Provider• Réception du push par l’application
  18. 18. CommunicationDevice – APNs Inscription auprès du provider
  19. 19. Connexion du Device• Le Device initialise la connexion• Le Device valide le certificat de l’APNs• L’APNs valide le certificat du Device• L’APNs établit la connexion
  20. 20. Inscription du Device• Le device se connecte à l’APNs• l’APNs génére un “deviceToken” avec les informations que lui fournit le device(certificat)• l’APNs chiffre le “deviceToken” avec une “token Key”• L’APNs envoie le “deviceToken” au device• L’application réceptionne le deviceToken et le transmet au provider
  21. 21. Inscription du Device• - (void)registerForRemoteNotificationTypes: (UIRemoteNotificationType)types• - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken: (NSData *)deviceToken• - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError: (NSError *)error
  22. 22. Démo
  23. 23. CommunicationProvider – APNs Envois d’un push
  24. 24. Connexion du Provider• Le Provider initialise la connexion• Le Provider valide le certificat de l’APNs• L’APNs valide le certificat du Provider• L’APNs établit la connexion
  25. 25. Environnements• Sandbox gateway.sandbox.push.apple.com:2195• Production gateway.push.apple.com:2195
  26. 26. Envois d’un Push par le Provider• Le Provider se connecte à l’APNs• Le Provider envoie le deviceToken et la notification à l’APNs• L’APNs déchiffre le deviceToken avec la “token Key”
  27. 27. La Notification• Dictionnaire Json RFC 4627 {! "aps" : {! "alert" : {! " ""body” : "Message de l’alert View",! " ""action-loc-key” : "Voir",! " ""launch-image" : "nomDeMonImage.png"! "},! "badge" : 9,! "sound" : "bingbong.aiff"! },! "acme1" : "bar",! "acme2" : 42! }!• 256 Octets maximum• Pas d’informations sensibles
  28. 28. Packet Simple de Notification
  29. 29. Packet Amélioré de Notification
  30. 30. Packet d’Erreur 0 No Error Encountered 1 Processing Error 2 Missing device token 3 Missing topic 4 Missing payload 5 Invalid token size 6 Invalid topic size 7 Invalid payload size 8 Invalid token 255 None (unknown)
  31. 31. Packet de FeedBack
  32. 32. Exemples de ProviderLibrary• apnsphp ( code.google.com/p/apns-php/ )• easy apns ( www.easyapns.com/ )• apns-sharp ( github.com/Redth/APNS-Sharp )• java-apns ( https://github.com/notnoop/java-apns )• Bien d’autres...
  33. 33. Exemples de ProviderServices• Urban Airship ( urbanairship.com )• AppNotify ( appnotify.com/developer )• ...
  34. 34. CommunicationDevice – APNs Réception du push
  35. 35. Reconnexion du Device• Le device initialise la connexion• L’APNs valide le certificat & le deviceToken du device• L’APNs établit la connexion
  36. 36. Envois du push• L’APNs transfère la notification au device correspondant au deviceToken• Le device transfère la notification à l’application
  37. 37. Actions• - (void)application:(UIApplication *)application didReceiveRemoteNotification: (NSDictionary *)userInfo• - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
  38. 38. Démo
  39. 39. Pour résumer
  40. 40. Pour aller plus loin• La documentation Apple ( developer.apple.com )• Raywenderlich.com ( http:// www.raywenderlich.com/3443/apple-push-notification- services-tutorial-part-12 )
  41. 41. CocoaHeads Rennes #10 julien@cocoaheads.fr 10 mai 2012 thomas.dupont@cocoaheads.fr Merciemail: Gwennin.LeBourdonnec@supinfo.comtwitter: @Gwenninsite : gwennin.meemail: Marc.Audefroy@supinfo.comtwitter: @MarcAudefroyemail: laboAppleRennes@supinfo.comsite : www.labo-apple.com

×