christophefernandes
1,971 views
48 slides
Oct 17, 2017
Slide 1 of 48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
About This Presentation
Présentation par Christophe FERNANDES et Athanase Kalantzakis. Retour d'expérience et application professionnel des API WebExtensions. Présentée lors du meetup chez Firefox : introduction aux webextensions.
Size: 4.77 MB
Language: fr
Added: Oct 17, 2017
Slides: 48 pages
Slide Content
iGraal
& Les WebExtensions
[16⋅10⋅2017]
Qui sommes-nous ?
Christophe FERNANDES
IT Manager @ iGraal
Developpeur iOS
Developpeur Extensions
@chris_fds
@fernandeschristophe
Athanase KALANTZAKIS
Lead Developer @ iGraal
Developpeur Android
Developpeur Extensions
01. iGraal
02. WebExtensions
02.1 La structure
02.2 Les principales APIs utilisées
03. Développement cross browser
04. Conclusion
05. Questions / Réponses
Sommaire
01. iGraal
En général
01. iGraal, une success story
iGraal en quelques chiffres
+3 000 000
inscrits
+300 000
Commandes
par mois
+1 650
Marchands
partenaires
18 millions €
de CA en 2016
Créé en 2006, leader du marché du cashback depuis 2012 en France
Ouverture en 2009 de l’Allemagne, #2 sur ce marché
Décembre 2016 : Prise de participation majoritaire par le groupe M6
01. iGraal, le cashback c’est quoi ?
Vous achetez sur Internet ?
iGraal vous reverse de l’argent
lors de vos achats en ligne
C’est le cashback !
Le marchand nous rémunère
pour votre achat
Nous partageons cette
commission avec vous !
01. iGraal, le cashback c’est quoi ?
Vous achetez chez un
marchand partenaire en
passant par iGraal
1 2 3
Dès 20€ cumulés, vous récupérez vos gains !
01. iGraal, le cashback c’est quoi ?
Vous cumulez vos gains sur votre cagnotte iGraal
4
1.2M
visiteurs uniques mensuels
95k
Utilisateurs actifs mensuels
160k
membres iGraal
Site web responsive Applications mobile
iOS & Android
Extensions
01. iGraal, un dispositif multicanal
L’extension
01. iGraal, l’extension
L’extension iGraal est un outil offert aux utilisateurs iGraal afin de :
●Connaître les dernières offres proposées
●Éviter d’oublier d’activer le cashback
●Activer le cashback sans passer par le site
●Les rassurer sur l’obtention du cashback
Disponible sur les 4 principaux navigateurs :
01. iGraal, l’extension
Juin 2017 : Refonte de notre extension
Objectifs :
●Adapter l’extension au design actuel
du site et des applications mobiles
●Mise à niveau des APIs
●Mise à jour des technos
●Utilisation des WebExtensions
02. WebExtensions
02.1 Structure de l’extension
02.1 WebExtensions, la structure
L’extension est constituée par 3 éléments principaux
Background
script
●Assure la récupération des données depuis
l’API iGraal
●Gère le suivi de la navigation pour la détection
●Contient les règles métiers
Popup
●Présente les dernières offres
●Navigation par catégories
●Recherche de marchands
●Rappel des offres du marchand (mode détecté et activé)
Content
scripts
●Communication avec le site iGraal
●Toolbar sur les partenaires
●Gère l’ajout de picto sur les SERPS
●Alerte panier etc ….
02.1 Les principales APIs utilisées
Tabs
L’API browser.tabs permet de :
●Ajouter des listeners sur les événements des
tabs : ouverture, fermeture, mise à jour etc...
●Ouvrir/Fermer une tab
●Changer l’url ou une propriété de la tab
●Récupérer la tab courante, toutes les tabs,
celles d’une fenêtre …
C’est via cette API que nous assurons :
●Détection du cashback
●Sécurité de l’obtention du cashback
https://developer.mozilla.org/fr/Add-ons/WebExtensions/API/runtime
L’API browser.runtime permet de :
●Récupérer des informations sur l’extension et
son environnement d’exécution : id, os,
architecture etc...
●Communiquer entre les différents composants
de l’extension.
●Définir une url de désinstallation
L’adaptation cross browser :
●L’utilisation de “browser“ ne fonctionne pas
sur Chrome et Opera
●Certaines APIs ne sont pas encore
disponibles sur Firefox
●Nous supportons aussi the new IE … Safari !
●Nous souhaitons partager toutes les règles
métiers
03. Développement cross browser
https://github.com/mozilla/webextension-polyfill
Les solutions adoptées
●L’utilisation “d'adapters” pour les deux types d’API
●Utilisation du webextension-polyfill
●Utilisation de webpack pour générer deux build
différents