SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
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
02.1 WebExtensions, l’API tabs
https://developer.mozilla.org/fr/Add-ons/WebExtensions/API/tabs
02.1 WebExtensions, l’API tabs, la démo
https://github.com/igraal/WebExtensions/releases/tag/tabs-sample
Démo !
02.1 WebExtensions, l’API tabs, le code
https://github.com/igraal/WebExtensions/releases/tag/tabs-sample
1
background.js
02.1 WebExtensions, l’API tabs, le code
https://github.com/igraal/WebExtensions/releases/tag/tabs-sample
background.js
2
02.1 WebExtensions, l’API tabs, le code
https://github.com/igraal/WebExtensions/releases/tag/tabs-sample
3
background.js
............
Runtime
02.1 WebExtensions, l’API runtime
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
02.1 WebExtensions, l’API runtime, la démo
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
Démo !
Background.js
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
background.js
1
background.js
2
background.js
3
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
background.js
4
background.js
5
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
02.1 WebExtensions, l’API runtime, le code
background.js
6
...
background.js
7
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
background.js
8
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
background.js
9
Popup.js
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
popup.js
1
popup.js
2
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
popup.js
3
popup.js
02.1 WebExtensions, l’API runtime, le code
https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
4
On utilise aussi ...
webRequest.onBeforeRedirect
02.1 WebExtensions, on utilise aussi les APIs...
Nous utilisons aussi les APIs suivantes
browser.management
browser.browserActionstorage
privacy.websites.thirdPartyCookiesAllowed
03. Développement
cross browser
03. Développement cross browser
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
03. Développement cross browser, démo
https://github.com/igraal/WebExtensions/releases/tag/cross-browser-sample
Démo !
05. CONCLUSION
05. Conclusion
● Nous avons une extension cross browser
● Dernières technos en vogue : React, Redux, RxJs
● Intégration continue avec l’application du GitFlow
04. QUESTIONS /
RÉPONSES
04. Questions / Réponses
La présentation
L’application mobileLe site
iGraal recrute !
Développeur(se) PHP Backend
Développeur(se) PHP Fullstack / JS - stage ou alternance
Rédacteur Web + Community management - stage
Pour postuler : jobs-fr@igraal.com

Contenu connexe

Tendances

AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIRomain Cambien
 
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...DEFO KUATE Landry
 
Les WebExtensions et Firefox - JDLL 2017
Les WebExtensions et Firefox - JDLL 2017Les WebExtensions et Firefox - JDLL 2017
Les WebExtensions et Firefox - JDLL 2017Christophe Villeneuve
 
Make (et make file) dans le cadre de wordpress
Make (et make file) dans le cadre de wordpressMake (et make file) dans le cadre de wordpress
Make (et make file) dans le cadre de wordpressGuillaume Richard
 
Les extensions Firefox et Google Chrome pour naviguer efficacement
Les extensions Firefox et Google Chrome pour naviguer efficacementLes extensions Firefox et Google Chrome pour naviguer efficacement
Les extensions Firefox et Google Chrome pour naviguer efficacementURFIST de Paris
 
Utilitaires, petits mais ... costaud
Utilitaires, petits mais ... costaudUtilitaires, petits mais ... costaud
Utilitaires, petits mais ... costaudChristophe Catarina
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
 
Les écrans animés dans les navigateurs
Les écrans animés dans les navigateursLes écrans animés dans les navigateurs
Les écrans animés dans les navigateursChristophe Villeneuve
 
Firefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneFirefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneChristophe Villeneuve
 
Le poste de travail Libre
Le poste de travail LibreLe poste de travail Libre
Le poste de travail LibreLINAGORA
 
Firefox OS de la théorie à la pratique - OSDC
Firefox OS de la théorie à la pratique - OSDCFirefox OS de la théorie à la pratique - OSDC
Firefox OS de la théorie à la pratique - OSDCChristophe Villeneuve
 
Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Thierry Régagnon
 
L'agenda d'OBM 2.4, cas d'utilisations avancés
L'agenda d'OBM 2.4, cas d'utilisations avancés L'agenda d'OBM 2.4, cas d'utilisations avancés
L'agenda d'OBM 2.4, cas d'utilisations avancés LINAGORA
 
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...Paris Open Source Summit
 

Tendances (20)

AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...Développer une application Chrome avec AngularJs (Google Développers Group Sa...
Développer une application Chrome avec AngularJs (Google Développers Group Sa...
 
Les web extensions
Les web extensionsLes web extensions
Les web extensions
 
Les WebExtensions et Firefox - JDLL 2017
Les WebExtensions et Firefox - JDLL 2017Les WebExtensions et Firefox - JDLL 2017
Les WebExtensions et Firefox - JDLL 2017
 
Make (et make file) dans le cadre de wordpress
Make (et make file) dans le cadre de wordpressMake (et make file) dans le cadre de wordpress
Make (et make file) dans le cadre de wordpress
 
Firefox comme navigateur alternatif
Firefox comme navigateur alternatifFirefox comme navigateur alternatif
Firefox comme navigateur alternatif
 
Firefox et les WebExtensions
Firefox et les WebExtensionsFirefox et les WebExtensions
Firefox et les WebExtensions
 
Les extensions Firefox et Google Chrome pour naviguer efficacement
Les extensions Firefox et Google Chrome pour naviguer efficacementLes extensions Firefox et Google Chrome pour naviguer efficacement
Les extensions Firefox et Google Chrome pour naviguer efficacement
 
Navigateurs alternatifs de Comodo
Navigateurs alternatifs de ComodoNavigateurs alternatifs de Comodo
Navigateurs alternatifs de Comodo
 
Utilitaires, petits mais ... costaud
Utilitaires, petits mais ... costaudUtilitaires, petits mais ... costaud
Utilitaires, petits mais ... costaud
 
Firefox extensions vpdf
Firefox extensions vpdfFirefox extensions vpdf
Firefox extensions vpdf
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
 
Les écrans animés dans les navigateurs
Les écrans animés dans les navigateursLes écrans animés dans les navigateurs
Les écrans animés dans les navigateurs
 
Firefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneFirefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphone
 
Le poste de travail Libre
Le poste de travail LibreLe poste de travail Libre
Le poste de travail Libre
 
Firefox OS de la théorie à la pratique - OSDC
Firefox OS de la théorie à la pratique - OSDCFirefox OS de la théorie à la pratique - OSDC
Firefox OS de la théorie à la pratique - OSDC
 
Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)
 
L'agenda d'OBM 2.4, cas d'utilisations avancés
L'agenda d'OBM 2.4, cas d'utilisations avancés L'agenda d'OBM 2.4, cas d'utilisations avancés
L'agenda d'OBM 2.4, cas d'utilisations avancés
 
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
 
Angularjs101 p2
Angularjs101 p2Angularjs101 p2
Angularjs101 p2
 

Similaire à iGraal et les webextensions

Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierDamien Laureaux
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwthkairi
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012Yannick Quenec'hdu
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdfimenhamada17
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...Vincent Terrasi
 
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œilVisual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œilMicrosoft Technet France
 
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKit
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKitConstruire une Application Mobile en 30 minutes avec le plugin WP-AppKit
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKituncatcrea
 
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Peak Ace
 
Codeurs en seine microsoft .net core plaform
Codeurs en seine microsoft  .net core plaformCodeurs en seine microsoft  .net core plaform
Codeurs en seine microsoft .net core plaformSébastien Pertus
 
Gestion des APIs avec Azure API Management - Samir AREZKI
Gestion des APIs avec Azure API Management - Samir AREZKIGestion des APIs avec Azure API Management - Samir AREZKI
Gestion des APIs avec Azure API Management - Samir AREZKISamir Arezki ☁
 
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - AlloyMeetup Mobile Montpellier
 
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Script
Construisez vos propres dashboards SEO automatisés grâce à Google Apps ScriptConstruisez vos propres dashboards SEO automatisés grâce à Google Apps Script
Construisez vos propres dashboards SEO automatisés grâce à Google Apps ScriptSEO CAMP
 
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Scr...
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Scr...Construisez vos propres dashboards SEO automatisés grâce à Google Apps Scr...
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Scr...Alpha Keïta
 
Global Azure Bootcamp 2018 Power BI + MS Graph API
Global Azure Bootcamp 2018 Power BI + MS Graph APIGlobal Azure Bootcamp 2018 Power BI + MS Graph API
Global Azure Bootcamp 2018 Power BI + MS Graph APIJoël Crest
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Cédric Leblond
 

Similaire à iGraal et les webextensions (20)

Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG Montpellier
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
Dreamforce Global Gathering
Dreamforce Global GatheringDreamforce Global Gathering
Dreamforce Global Gathering
 
Redmine présentation sug 2012
Redmine présentation sug 2012Redmine présentation sug 2012
Redmine présentation sug 2012
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
 
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œilVisual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œil
 
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKit
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKitConstruire une Application Mobile en 30 minutes avec le plugin WP-AppKit
Construire une Application Mobile en 30 minutes avec le plugin WP-AppKit
 
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
Seo Camp'us 2018 - SEO & FRAMEWORK JAVASCRIPT - Philippe Yonnet - Directeur G...
 
API Management
API ManagementAPI Management
API Management
 
Codeurs en seine microsoft .net core plaform
Codeurs en seine microsoft  .net core plaformCodeurs en seine microsoft  .net core plaform
Codeurs en seine microsoft .net core plaform
 
Gestion des APIs avec Azure API Management - Samir AREZKI
Gestion des APIs avec Azure API Management - Samir AREZKIGestion des APIs avec Azure API Management - Samir AREZKI
Gestion des APIs avec Azure API Management - Samir AREZKI
 
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
 
Cv analyste programmeur
Cv analyste programmeurCv analyste programmeur
Cv analyste programmeur
 
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Script
Construisez vos propres dashboards SEO automatisés grâce à Google Apps ScriptConstruisez vos propres dashboards SEO automatisés grâce à Google Apps Script
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Script
 
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Scr...
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Scr...Construisez vos propres dashboards SEO automatisés grâce à Google Apps Scr...
Construisez vos propres dashboards SEO automatisés grâce à Google Apps Scr...
 
Global Azure Bootcamp 2018 Power BI + MS Graph API
Global Azure Bootcamp 2018 Power BI + MS Graph APIGlobal Azure Bootcamp 2018 Power BI + MS Graph API
Global Azure Bootcamp 2018 Power BI + MS Graph API
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !
 

iGraal et les webextensions

  • 2. Qui sommes-nous ? Christophe FERNANDES IT Manager @ iGraal Developpeur iOS Developpeur Extensions @chris_fds @fernandeschristophe Athanase KALANTZAKIS Lead Developer @ iGraal Developpeur Android Developpeur Extensions
  • 3. 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
  • 6. 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
  • 7. 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 !
  • 8. 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
  • 9. 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
  • 10. 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
  • 12. 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 :
  • 13. 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
  • 15. 02.1 Structure de l’extension
  • 16. 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 ….
  • 17. 02.1 Les principales APIs utilisées
  • 18. Tabs
  • 19. 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 02.1 WebExtensions, l’API tabs https://developer.mozilla.org/fr/Add-ons/WebExtensions/API/tabs
  • 20. 02.1 WebExtensions, l’API tabs, la démo https://github.com/igraal/WebExtensions/releases/tag/tabs-sample Démo !
  • 21. 02.1 WebExtensions, l’API tabs, le code https://github.com/igraal/WebExtensions/releases/tag/tabs-sample 1 background.js
  • 22. 02.1 WebExtensions, l’API tabs, le code https://github.com/igraal/WebExtensions/releases/tag/tabs-sample background.js 2
  • 23. 02.1 WebExtensions, l’API tabs, le code https://github.com/igraal/WebExtensions/releases/tag/tabs-sample 3 background.js ............
  • 25. 02.1 WebExtensions, l’API runtime 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
  • 26. 02.1 WebExtensions, l’API runtime, la démo https://github.com/igraal/WebExtensions/releases/tag/send-message-sample Démo !
  • 28. 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample background.js 1 background.js 2
  • 29. background.js 3 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
  • 30. 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample background.js 4 background.js 5
  • 32. background.js 7 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample
  • 33. 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample background.js 8
  • 34. 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample background.js 9
  • 36. 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample popup.js 1 popup.js 2
  • 37. 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample popup.js 3
  • 38. popup.js 02.1 WebExtensions, l’API runtime, le code https://github.com/igraal/WebExtensions/releases/tag/send-message-sample 4
  • 40. webRequest.onBeforeRedirect 02.1 WebExtensions, on utilise aussi les APIs... Nous utilisons aussi les APIs suivantes browser.management browser.browserActionstorage privacy.websites.thirdPartyCookiesAllowed
  • 42. 03. Développement cross browser 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
  • 43. 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
  • 44. 03. Développement cross browser, démo https://github.com/igraal/WebExtensions/releases/tag/cross-browser-sample Démo !
  • 46. 05. Conclusion ● Nous avons une extension cross browser ● Dernières technos en vogue : React, Redux, RxJs ● Intégration continue avec l’application du GitFlow
  • 48. 04. Questions / Réponses La présentation L’application mobileLe site iGraal recrute ! Développeur(se) PHP Backend Développeur(se) PHP Fullstack / JS - stage ou alternance Rédacteur Web + Community management - stage Pour postuler : jobs-fr@igraal.com