26
Push Notification Pour smartphones Android Lightning Talk Ben Rabah Wajdi – Orange Developer Center 19/02/2014 Tunis

Push Notification

Embed Size (px)

DESCRIPTION

Présentation élaborée par M. Wajdi Ben Rabeh dans le cadre des sessions de Lightning Talks à l'Orange Developer Center.

Citation preview

Page 1: Push Notification

Push NotificationPour smartphones AndroidLightning Talk

Ben Rabah Wajdi – Orange Developer Center19/02/2014 Tunis

Page 2: Push Notification

2 Orange restrictedOrange presentation

Plan

section 1 Qu’est ce que le push notification?

section 2 Pourquoi opter pour le push notification?

section 3 Les méthodes pour avoir des mises à jours

section 4 Composantes

section 5 Prêt? Partez!

section 6 Tutorial pas à pas

section 7 Conclusion

Page 3: Push Notification

3 Orange restrictedOrange presentation

Qu’est ce que le Push Notification ?

Gardez le contact avec vos utilisateurs, apportez leur de l’information ponctuelle et dynamisez l’utilisation de votre application… sans que celle-ci n’ait besoin d’être en cours d’exécution ! C’est ce que permettent les notifications push sur nos smartphones.

Page 4: Push Notification

4 Orange restrictedOrange presentation

Pourquoi opter pour le push notification ?

Page 5: Push Notification

5 Orange restrictedOrange presentation

Les méthodes pour avoir des mises à jours

Any news?

No!Any news?

No!

Any news?

No! New content!

Any news?

Yes! (News)

Push me your news!

News!

Transférer le plus tôt possible Conserver la batterie Minimiser le taux de données transférées aux

utilisateurs

Page 6: Push Notification

6 Orange restrictedOrange presentation

Petite comparaison entre IOS et Android

Page 7: Push Notification

7 Orange restricted

Quels sont les composantes pour mettre en place le push notification ?

Page 8: Push Notification

8 Orange restricted

La confiance

Page 9: Push Notification

9 Orange restricted

Oui mais pratiquement comment ça se passe ?

Page 10: Push Notification

10 Orange restricted

Oui mais pratiquement comment ça se passe ?

Page 11: Push Notification

11 Orange restricted

Oui mais pratiquement comment ça se passe ?

Page 12: Push Notification

12 Orange restricted

Résumons

Page 13: Push Notification

13 Orange restricted

Ready ? Go !

Maintenant mon serveur est enregistré avec Google et a au moins un smartphone pour lequel il peut envoyer des messages.

Page 14: Push Notification

14 Orange restricted

C’est bien beau de parler mais pratiquement comment ça se passe ?

Page 15: Push Notification

15 Orange restricted

Accès à Google Api console

• Aller à  Google APIs Console page et noter le projectId .

Page 16: Push Notification

16 Orange restricted

Activation de l’Api

Page 17: Push Notification

17 Orange restricted

Api key

Page 18: Push Notification

18 Orange restricted

Implémentation du serveur

• Installation de Xampp ou Wamp.• Accès à : http://localhost/phpmyadmin• Création d’une table d’utilisateurs :

CREATE TABLE IF NOT EXISTS `gcm_users` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `gcm_regid` text,  `name` varchar(50) NOT NULL,  `email` varchar(255) NOT NULL,  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

• S’assurer que l’extension curl est activée (activée par défaut à Xampp)

Page 19: Push Notification

19 Orange restricted

Implémentation du serveur

• Créez le répertoire gcm_server_php sous htdocs de xampp (ou www de wamp)

• Créez les fichiers suivants : config.php (pour configurer les accès , BD, mot de passe,

user…) db_connect.php (pour définir les opérations de base :

connexion, déconnexion…) db_functions.php (responsable de requêtes sur l’utilisateur) GCM.php (qui envoi les demandes de notifications au serveur) register.php (enregistre les smartphones) send_message.php (requête au serveur GCM puis envoi des

push notifications au smartphone) index.php ( une page qui affiche l’ensemble des smartphones

enregistrés et contrôle tout envoi)

Page 20: Push Notification

20 Orange restricted

Préparation du projet Android

• Allez à SDK manager et installez Google Cloud Messaging for Android Library sous la section Extras.

• Après installation, allez au repertoire : Andoird_SDK_Folder\extras\google\gcm\gcm-client\dist

• Copier le fichier « gcm.jar » au répertoire lib de votre projet , puis incluez ce dernier dans le build path.

Page 21: Push Notification

21 Orange restricted

Mise en place du projet Android

• Inclure les permissions nécessaires dans le manifest.• Définir un broadcast receiver responsable d’envoi, réception (des

push) et d’enregistrement des smartphones.• Définir un service qui va contrôler notre broadcast.• Définir la classe AlertDialogManager.java qui va afficher une alerte

dialog dans le cas de succès ou d’échec de connexion.• Définir la classe ConnectionDetector.java qui a pour rôle de

connaitre l’état de la connexion internet.• Définir la classe CommonUtilities.java qui contient la

configuration de GCM et l’url de notre serveur.• SERVER_URL = ici on travaille en localhost donc notre IP• SENDER_ID = l’id du projet donné auparavant par Google.

Page 22: Push Notification

22 Orange restricted

Mise en place du projet Android

• Définir la classe ServerUtilities.java : abonne/désabonne un smartphone, et responsable de l’envoi de données au serveur aussi .

• Définir la classe GCMIntentService.java : joue le rôle d’écouteur suite aux différentes actions (enregistrement d’un smartphone, réception de message …)

• Définir la classe RegisterActivity.java responsable de l’enregistrement des smartphones.

• Définir l’activité MainActivity.java qui va représenter notre point de départ et va notifier le serveur de l’abonnement d’un nouveau smartphone.

Page 23: Push Notification

23 Orange restricted

Mise en place du projet Android

• Définir le layout activity_register.xml permettant d’abonner un smartphone.

• Définir le fichier string.xml permettant de stocker les informations nécessaires aux messages d’erreurs etc. … (pattern utilisé pour ce faire)

• J’ai ajouté d’autres classes comme WakeLocker.java qui ne laisse pas le smartphone entrer en mode veille.

Page 24: Push Notification

24 Orange restricted

Démonstration

Aussi disponible ici : https://www.dropbox.com/s/eto4dkgyqzy4d5l/Push%20notification.mp4

Page 25: Push Notification

25 Orange restricted

Conclusion : Limites

Messages de très petite longueur. Pas de garantie si le message est

bien sécurisé. Envoi :

Non garanti Les utilisateurs peuvent se désabonner. Les utilisateurs peuvent désactiver les

notifications afin de bien gérer la batterie.

Page 26: Push Notification

Merci

Orange, the Orange mark and any other Orange product or service names referred to in this material are trade marks of Orange Brand Services Limited.

Orange restricted.