SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Voteriez-vous pour un web
déconnecté ?
Rossi Oddet
@rossioddet
http://blog.roddet.com
2014, l’année de
l’Internet des Objets
Pourquoi toute
cette frustration ?
HTTP !
Request
HTTP !
Response
Pas de ça chez HTTP !
Résumons
Une système
sans mode déconnecté ?
Inutile quand la connexion est perdue
Contre-nature Humaine
Inadaptée à la vie réelle
Contre-nature HTTP
Où mettre le mode
déconnecté ?
Comment faire ?
Offline First !
1. Développer son système en mode déconnecté
2. Ajouter les fonctionnalités du mode connecté
Arrêtez de considérer la perte de connexion comme une erreur
technique
Container
App
PROXY
Server
UI
ONLINE ?
features!
offline
features!
online
SENSORS
SYNC
Et si mon container est
le navigateur ?
+ Des Librairies +
Surtout
votre talent de développeur !
Attention à la sécurité !
Application Cache
<html manifest="myApp.appcache">
!
!
!
</html>
index.html
CACHE MANIFEST
!
CACHE:
favicon.ico
script.js
stylesheet.css
!
!
NETWORK:
*
!
!
FALLBACK:
/online /offline.html
!
!
!
myApp.appcache
10
cache-control : no-cache!
MIME-type : text/cache-manifest
Web Storage
8
!
localStorage.setItem(key,value);
!
!
localStorage.getItem(key);
!
!
localStorage.removeItem(key);
!
!
localStorage.length
!
!
localStorage.key(index)
!
!
localStorage.clear()
localStorage vs sessionStorage
Stockage Clé/Valeur
Et bien d’autres…
File System API!
!
IndexedDB!
!
navigator.online!
!
Page Visibility API!
!
Battery Status API!
!
Cookie :)
Quelques librairies
JQuery Server Observer PluginLIB
!
$.serverObserver.enable({
url: "http://xxx",
frequency: 5000,
onServerOnline: function() {
// The server is available
},
onServerOffline: function() {
// The server is unavailable
}
});
!
$.serverObserver.disable()
!
$.serverObserver.isServerOnline()
https://github.com/antoine-richard/jquery-server-observer
jQuery Offline PluginLIB
jQuery.retrieveJSON("/url", {data: "toSend"}, function(json, status, data) {
});
!
jQuery.clearJSON("/url", {data: “toSend"});
https://github.com/wycats/jquery-offline
http://github.hubspot.com/offline/
http://brian.io/lawnchair/
https://github.com/mozilla/localForage
http://remotestorage.io/
https://www.firebase.com/
http://hood.ie
http://www.breezejs.com/
https://github.com/forbesmyester/SyncIt
La sécurité
Container
XSS StockéeXSS Basée sur le DOM
XSS Réfléchie
Déni de service!
Corruption des données!
Vol de données!
…
https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents
Nouvelle rubrique
Et surtout…
Container
App
PROXY
UI
ONLINE ?
features!
offline
features!
online
SENSORS
SYNC
Votre talent !!!
Et si vous décidiez vous
aussi d’être “tendance” ?
Soyez “réactif” avec le
mode déconnecté !
http://www.reactivemanifesto.org/
responsive
event-driven
scalable resilient
Et si tout le monde
jouait le jeu ?
Voteriez-vous pour un web
déconnecté ?

Contenu connexe

En vedette

JCertif 2012 : Le lab
JCertif 2012 : Le labJCertif 2012 : Le lab
JCertif 2012 : Le labRossi Oddet
 
E-gouvernance, systèmes d’information, approche réseau
E-gouvernance, systèmes d’information, approche réseauE-gouvernance, systèmes d’information, approche réseau
E-gouvernance, systèmes d’information, approche réseauMission laïque française
 
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath JavaDevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath JavaAlexis Hassler
 
PAUG - Intégration Continue - Décembre 2013
PAUG - Intégration Continue - Décembre 2013PAUG - Intégration Continue - Décembre 2013
PAUG - Intégration Continue - Décembre 2013Aurélien Guillard
 
BreizhCamp 2014 - Ionic in Action (Tools In Action)
BreizhCamp 2014 - Ionic in Action (Tools In Action)BreizhCamp 2014 - Ionic in Action (Tools In Action)
BreizhCamp 2014 - Ionic in Action (Tools In Action)Rossi Oddet
 
1 introduction systèmes-information-géographique
1 introduction systèmes-information-géographique1 introduction systèmes-information-géographique
1 introduction systèmes-information-géographiqueAfou Lazyboy
 
JSF2, Primefaces, Primefaces Mobile
JSF2, Primefaces, Primefaces MobileJSF2, Primefaces, Primefaces Mobile
JSF2, Primefaces, Primefaces MobileSylla Mamoudou
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
Bootstrap 3 sur drupal
Bootstrap 3 sur drupalBootstrap 3 sur drupal
Bootstrap 3 sur drupalsographik
 
Présentation prime facesfinal
Présentation prime facesfinalPrésentation prime facesfinal
Présentation prime facesfinalAymen Drira
 
Les technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésLes technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésAlexandre LAHAYE
 
AWS Summit Paris - Track 3 - Session 1 - IoT Partie 1 - Connectez vos objets ...
AWS Summit Paris - Track 3 - Session 1 - IoT Partie 1 - Connectez vos objets ...AWS Summit Paris - Track 3 - Session 1 - IoT Partie 1 - Connectez vos objets ...
AWS Summit Paris - Track 3 - Session 1 - IoT Partie 1 - Connectez vos objets ...Amazon Web Services
 
comprendre angularJS en 10 minutes
comprendre angularJS en 10 minutescomprendre angularJS en 10 minutes
comprendre angularJS en 10 minutesDavid Bo
 
Ateliers primefaces
Ateliers primefacesAteliers primefaces
Ateliers primefacesAymen Drira
 
Front end - advanced development for beginners
Front end - advanced development for beginnersFront end - advanced development for beginners
Front end - advanced development for beginnersintive
 

En vedette (17)

JCertif 2012 : Le lab
JCertif 2012 : Le labJCertif 2012 : Le lab
JCertif 2012 : Le lab
 
E-gouvernance, systèmes d’information, approche réseau
E-gouvernance, systèmes d’information, approche réseauE-gouvernance, systèmes d’information, approche réseau
E-gouvernance, systèmes d’information, approche réseau
 
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath JavaDevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
 
PAUG - Intégration Continue - Décembre 2013
PAUG - Intégration Continue - Décembre 2013PAUG - Intégration Continue - Décembre 2013
PAUG - Intégration Continue - Décembre 2013
 
BreizhCamp 2014 - Ionic in Action (Tools In Action)
BreizhCamp 2014 - Ionic in Action (Tools In Action)BreizhCamp 2014 - Ionic in Action (Tools In Action)
BreizhCamp 2014 - Ionic in Action (Tools In Action)
 
1 introduction systèmes-information-géographique
1 introduction systèmes-information-géographique1 introduction systèmes-information-géographique
1 introduction systèmes-information-géographique
 
JSF2, Primefaces, Primefaces Mobile
JSF2, Primefaces, Primefaces MobileJSF2, Primefaces, Primefaces Mobile
JSF2, Primefaces, Primefaces Mobile
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
Bootstrap 3 sur drupal
Bootstrap 3 sur drupalBootstrap 3 sur drupal
Bootstrap 3 sur drupal
 
Présentation prime facesfinal
Présentation prime facesfinalPrésentation prime facesfinal
Présentation prime facesfinal
 
Les technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectésLes technologies Open Source pour les objets connectés
Les technologies Open Source pour les objets connectés
 
AWS Summit Paris - Track 3 - Session 1 - IoT Partie 1 - Connectez vos objets ...
AWS Summit Paris - Track 3 - Session 1 - IoT Partie 1 - Connectez vos objets ...AWS Summit Paris - Track 3 - Session 1 - IoT Partie 1 - Connectez vos objets ...
AWS Summit Paris - Track 3 - Session 1 - IoT Partie 1 - Connectez vos objets ...
 
Presentation jsf2
Presentation jsf2Presentation jsf2
Presentation jsf2
 
comprendre angularJS en 10 minutes
comprendre angularJS en 10 minutescomprendre angularJS en 10 minutes
comprendre angularJS en 10 minutes
 
Ateliers primefaces
Ateliers primefacesAteliers primefaces
Ateliers primefaces
 
Front end - advanced development for beginners
Front end - advanced development for beginnersFront end - advanced development for beginners
Front end - advanced development for beginners
 
Material design
Material designMaterial design
Material design
 

Similaire à BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?

Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Christophe Porteneuve
 
ATELIER ANT N°1 - BLOG OU SITE INTERNET ?
ATELIER ANT N°1 - BLOG OU SITE INTERNET ?ATELIER ANT N°1 - BLOG OU SITE INTERNET ?
ATELIER ANT N°1 - BLOG OU SITE INTERNET ?Laurent P. PRO
 
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...Laurent P. PRO
 
Devenez un Expert SharePoint - Évitez les erreurs fréquentes
Devenez un Expert SharePoint - Évitez les erreurs fréquentesDevenez un Expert SharePoint - Évitez les erreurs fréquentes
Devenez un Expert SharePoint - Évitez les erreurs fréquentesGSoft
 
Web responsive & E-Commerce, un seul site pour tous les devices ?
Web responsive & E-Commerce, un seul site pour tous les devices ?Web responsive & E-Commerce, un seul site pour tous les devices ?
Web responsive & E-Commerce, un seul site pour tous les devices ?altima°
 
Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?NiceToMeetYou
 
Boite à outils du Web 2.0
Boite à outils du Web 2.0Boite à outils du Web 2.0
Boite à outils du Web 2.0Frederic Soussin
 
Api - mix it 2013
Api - mix it 2013Api - mix it 2013
Api - mix it 2013Eric D.
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Challenge Exakis - Intégrer cortana dans son application
Challenge Exakis - Intégrer cortana dans son applicationChallenge Exakis - Intégrer cortana dans son application
Challenge Exakis - Intégrer cortana dans son applicationJonathan Le Guellec
 
Web 2.0 - CGA Guadeloupe
Web 2.0 - CGA GuadeloupeWeb 2.0 - CGA Guadeloupe
Web 2.0 - CGA GuadeloupeXavier LAIR
 
Les 10 principaux outils du Web2.0
Les 10 principaux outils du Web2.0Les 10 principaux outils du Web2.0
Les 10 principaux outils du Web2.0Henri Kaufman
 
Télés connectées et développement Web
Télés connectées et développement WebTélés connectées et développement Web
Télés connectées et développement WebJean-Pierre Vincent
 
PHP : Une Plateforme Industrialisable Au Service De L'Agilité
PHP : Une Plateforme Industrialisable Au Service De L'AgilitéPHP : Une Plateforme Industrialisable Au Service De L'Agilité
PHP : Une Plateforme Industrialisable Au Service De L'AgilitéPHPPRO
 
Agence du Livre Haute-Normandie
Agence du Livre Haute-NormandieAgence du Livre Haute-Normandie
Agence du Livre Haute-NormandieFrederic Soussin
 
Mon Intro Au Web 20
Mon Intro Au Web 20Mon Intro Au Web 20
Mon Intro Au Web 20anne.wiener
 
Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au...
Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au...Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au...
Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au...Franck Cornu
 

Similaire à BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ? (20)

Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
Tirer parti des périphériques mobiles dans une application web : qui a dit qu...
 
ATELIER ANT N°1 - BLOG OU SITE INTERNET ?
ATELIER ANT N°1 - BLOG OU SITE INTERNET ?ATELIER ANT N°1 - BLOG OU SITE INTERNET ?
ATELIER ANT N°1 - BLOG OU SITE INTERNET ?
 
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
ATELIER ANT N°2 - MON SITE, MON BLOG ET MOI...
 
Devenez un Expert SharePoint - Évitez les erreurs fréquentes
Devenez un Expert SharePoint - Évitez les erreurs fréquentesDevenez un Expert SharePoint - Évitez les erreurs fréquentes
Devenez un Expert SharePoint - Évitez les erreurs fréquentes
 
Web responsive & E-Commerce, un seul site pour tous les devices ?
Web responsive & E-Commerce, un seul site pour tous les devices ?Web responsive & E-Commerce, un seul site pour tous les devices ?
Web responsive & E-Commerce, un seul site pour tous les devices ?
 
Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?Web Mobile : quelles opportunités face aux apps ?
Web Mobile : quelles opportunités face aux apps ?
 
Boite à outils du Web 2.0
Boite à outils du Web 2.0Boite à outils du Web 2.0
Boite à outils du Web 2.0
 
Api - mix it 2013
Api - mix it 2013Api - mix it 2013
Api - mix it 2013
 
Web 20
Web 20Web 20
Web 20
 
MeetUp #5
MeetUp #5MeetUp #5
MeetUp #5
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Challenge Exakis - Intégrer cortana dans son application
Challenge Exakis - Intégrer cortana dans son applicationChallenge Exakis - Intégrer cortana dans son application
Challenge Exakis - Intégrer cortana dans son application
 
Ardesi Réunion Toulouse
Ardesi Réunion ToulouseArdesi Réunion Toulouse
Ardesi Réunion Toulouse
 
Web 2.0 - CGA Guadeloupe
Web 2.0 - CGA GuadeloupeWeb 2.0 - CGA Guadeloupe
Web 2.0 - CGA Guadeloupe
 
Les 10 principaux outils du Web2.0
Les 10 principaux outils du Web2.0Les 10 principaux outils du Web2.0
Les 10 principaux outils du Web2.0
 
Télés connectées et développement Web
Télés connectées et développement WebTélés connectées et développement Web
Télés connectées et développement Web
 
PHP : Une Plateforme Industrialisable Au Service De L'Agilité
PHP : Une Plateforme Industrialisable Au Service De L'AgilitéPHP : Une Plateforme Industrialisable Au Service De L'Agilité
PHP : Une Plateforme Industrialisable Au Service De L'Agilité
 
Agence du Livre Haute-Normandie
Agence du Livre Haute-NormandieAgence du Livre Haute-Normandie
Agence du Livre Haute-Normandie
 
Mon Intro Au Web 20
Mon Intro Au Web 20Mon Intro Au Web 20
Mon Intro Au Web 20
 
Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au...
Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au...Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au...
Implémentez votre prochain assistant personnel d'intranet SharePoint grâce au...
 

BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?