51
Voteriez-vous pour un web déconnecté ? Rossi Oddet @rossioddet http://blog.roddet.com

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

Embed Size (px)

Citation preview

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

Voteriez-vous pour un web déconnecté ?

Rossi Oddet@rossioddethttp://blog.roddet.com

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

2014, l’année de l’Internet des Objets

Page 3: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 4: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 5: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 6: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 7: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?

Pourquoi toute cette frustration ?

Page 8: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 9: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 10: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 11: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?

HTTP !Request

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

HTTP !Response

Page 13: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 14: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?

Pas de ça chez HTTP !

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

Résumons

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

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

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

Où mettre le mode déconnecté ?

Page 18: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 19: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?

Comment faire ?

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

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

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

Container

App

PROXY

Server

UI

ONLINE ?

features!offline

features!online

SENSORS

SYNC

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

Et si mon container est le navigateur ?

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

+ Des Librairies + Surtout votre talent de développeur !

Attention à la sécurité !

Page 24: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 25: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?

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

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

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

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

Et bien d’autres…

File System API!!

IndexedDB!!

navigator.online!!

Page Visibility API!!

Battery Status API!!

Cookie :)

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

Quelques librairies

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

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

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

jQuery Offline PluginLIB

jQuery.retrieveJSON("/url", {data: "toSend"}, function(json, status, data) { }); !jQuery.clearJSON("/url", {data: “toSend"});

https://github.com/wycats/jquery-offline

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

http://github.hubspot.com/offline/

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

http://brian.io/lawnchair/

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

https://github.com/mozilla/localForage

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

http://remotestorage.io/

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

https://www.firebase.com/

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

http://hood.ie

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

http://www.breezejs.com/

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

https://github.com/forbesmyester/SyncIt

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

La sécurité

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

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!…

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

https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents

Nouvelle rubrique

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

Et surtout…

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

Container

App

PROXY

UI

ONLINE ?

features!offline

features!online

SENSORS

SYNC

Votre talent !!!

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

Et si vous décidiez vous aussi d’être “tendance” ?

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

Soyez “réactif” avec le mode déconnecté !

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

http://www.reactivemanifesto.org/

responsive

event-driven

scalable resilient

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

Et si tout le monde jouait le jeu ?

Page 48: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 49: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 50: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?
Page 51: BreizhCamp 2014 - Voteriez-vous pour un web déconnecté ?

Voteriez-vous pour un web déconnecté ?