Push Notification

Post on 20-Jun-2015

538 views 1 download

description

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

Transcript of Push Notification

Push NotificationPour smartphones AndroidLightning Talk

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

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

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.

4 Orange restrictedOrange presentation

Pourquoi opter pour le 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

6 Orange restrictedOrange presentation

Petite comparaison entre IOS et Android

7 Orange restricted

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

8 Orange restricted

La confiance

9 Orange restricted

Oui mais pratiquement comment ça se passe ?

10 Orange restricted

Oui mais pratiquement comment ça se passe ?

11 Orange restricted

Oui mais pratiquement comment ça se passe ?

12 Orange restricted

Résumons

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.

14 Orange restricted

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

15 Orange restricted

Accès à Google Api console

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

16 Orange restricted

Activation de l’Api

17 Orange restricted

Api key

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)

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)

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.

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.

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.

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.

24 Orange restricted

Démonstration

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

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.

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.