SlideShare a Scribd company logo
1 of 42
Let's Take Drupal Offline!
Dick Olsson 
Twitter: @dickolsson 
Drupal.org: dixon_
Agenda 
1. How we think about users and connectivity 
2. What's an “offline” website? 
3. Reasons to design for offline 
4. Are we there yet? 
5. Where's Drupal 8?
1. How we think about users and 
connectivity 
Attribution: https://www.flickr.com/photos/kansirnet/
Users on latest technology and robust connection 
People are getting newer faster phones 
Connectivity will solve itself over time
Wrong!
Non-negotiable 
Geography (e.g. valleys, buildings) 
Transportation (e.g. trains, tube) 
Over-crowded places (e.g. DrupalCon) 
Attribution: https://www.flickr.com/photos/footfun/
“Once out of bed, Internet and apps are used almost 
constantly, peaking during the daily commute with 
around 70 percent usage” 
- Ericsson 
Traffic and Market Report, June 2012 
Attribution: https://www.flickr.com/photos/59949757@N06/
Offline is a part of normal life
2. What's an “offline” website?
“We live in a disconnected & battery powered world, 
but our technology and best practices are a leftover 
from the always connected & steadily powered past.” 
- offlinefirst.org
It's about putting the user first 
and not think about her position or connectivity 
as a state of error
Offline apps are not new, 
but the “offline-first” mantra is
Examples 
1. Download all pages in the main menu 
on first visit 
2. Download search results for popular queries 
on first visit, like php.net
3. Reasons to design for offline
Privacy 
Users controll their own data, literally 
Often no need to share preferences and personal data 
with the central database 
Decentralization is a good thing
Security 
Do you really need all the data everywhere? 
Minimizes the attack vector of your app
Performance 
We put things on CDNs to get closer to the user 
Put it in my pocket instead!
Robustness 
In the Tube? Or server maintenance? 
Your app doesn't care
So far 
1. How we think about users and connectivity 
2. What's an “offline” website? 
3. Reasons to design for offline
4. Are we there yet?
What's required? 
A. The app itself (e.g. html, css, js) 
B. Remote database (that syncs over HTTP) 
C. Local database (that syncs over HTTP) 
D. Runtime (e.g. web browser)
“Any application that can be written in JavaScript, will 
eventually be written in JavaScript” 
- Jeff Atwood 
“Atwood's Law”
A. The app itself 
Angular JS 
Ember JS 
React JS 
Hood.ie 
etc. etc...
B. Remote database 
CouchDB 
Remotestorage.io 
both standardizes synchronization over HTTP
C. Local database 
PouchDB (works with CouchDB) 
Hood.ie (works with CouchDB)
“At some point in time recently, the browser 
transformed from being an awesome interactive 
document viewer into being the world's most advanced 
and widely-distributed application runtime” 
- Tom Dale 
Progressive Enhancement is Dead
D. Runtime 
HTML5 
Appcache 
Service Workers
Appcache 
Cache manifest for assets (e.g. html, css, js, img etc)
Service Workers 
A background process that can act like a proxy 
between your app and databases (local and remote) 
Not yet good browser support
5. Where's Drupal 8 in all of this? 
Attribution: https://www.flickr.com/photos/adamnewulm/
“Headless Drupal” is a step in the right direction 
Attribution: https://www.flickr.com/photos/cgc76/
But “headless” misses the point 
We should use the same technologies to build for 
“offline-first” instead
Drupal 8 would be your remote DB
But the REST API in Drupal 8 core is missing 
Revisioning 
Synchronization 
File attachments
Relaxed Web Services 
http://drupal.org/project/relaxed 
Replication Web Service 
http://drupal.org/project/replication 
These modules implement the same 
HTTP and sync API as CouchDB
When we standardize the HTTP API 
the frontend app can use standard tools, such as 
PouchDB (works with CouchDB) 
Hood.ie (works with CouchDB)
Reimagining best practices and patterns 
will still be hard
Conclusions 
Offline is a non-negotiable part of normal life 
Don't treat offline as an error 
Privacy, security, performance, robustness 
Possible to build offline capable websites 
with Drupal 8
Resources 
http://offlinefirst.org 
http://blog.hood.ie/2013/11/say-hello-to-offline-first 
http://alistapart.com/article/offline-first
Thanks! 
Questions? 
Twitter: @dickolsson 
Drupal.org: dixon_

More Related Content

What's hot

HTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedHTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedPeter Lubbers
 
Thinking in Components
Thinking in ComponentsThinking in Components
Thinking in ComponentsFITC
 
WebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceWebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceAllFacebook.de
 
Parse Apps with Ember.js
Parse Apps with Ember.jsParse Apps with Ember.js
Parse Apps with Ember.jsMatthew Beale
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPressadamsilverstein
 
New Perspectives on Performance
New Perspectives on PerformanceNew Perspectives on Performance
New Perspectives on Performancemennovanslooten
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOSKevin Decker
 
Developing advanced universal apps using html & js
Developing advanced universal apps using html & jsDeveloping advanced universal apps using html & js
Developing advanced universal apps using html & jsSenthamil Selvan
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSencha
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks ComparisonDeepu S Nath
 
A Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js GlueA Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js GlueMike North
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...Sencha
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4Derek Jacoby
 
Djangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsDjangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsNowell Strite
 
Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3adamsilverstein
 
Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Acquia
 

What's hot (20)

HTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedHTML5 Web Workers-unleashed
HTML5 Web Workers-unleashed
 
Thinking in Components
Thinking in ComponentsThinking in Components
Thinking in Components
 
WebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceWebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer Conference
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
 
Parse Apps with Ember.js
Parse Apps with Ember.jsParse Apps with Ember.js
Parse Apps with Ember.js
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPress
 
New Perspectives on Performance
New Perspectives on PerformanceNew Perspectives on Performance
New Perspectives on Performance
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOS
 
Developing advanced universal apps using html & js
Developing advanced universal apps using html & jsDeveloping advanced universal apps using html & js
Developing advanced universal apps using html & js
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks Comparison
 
Sfk13
Sfk13Sfk13
Sfk13
 
A Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js GlueA Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js Glue
 
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...
 
You Know WebOS
You Know WebOSYou Know WebOS
You Know WebOS
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4
 
Djangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable ApplicationsDjangocon 09 Presentation - Pluggable Applications
Djangocon 09 Presentation - Pluggable Applications
 
Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3
 
Nuxtjs cheat-sheet
Nuxtjs cheat-sheetNuxtjs cheat-sheet
Nuxtjs cheat-sheet
 
Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8
 

Viewers also liked

Offline & Online Scenario For An Interactive Adobe
Offline & Online Scenario For An Interactive AdobeOffline & Online Scenario For An Interactive Adobe
Offline & Online Scenario For An Interactive Adobestevecoupland
 
What Really Changed with Drupal 8
What Really Changed with Drupal 8What Really Changed with Drupal 8
What Really Changed with Drupal 8Dick Olsson
 
Nacho's Guide to Drupal+Angular
Nacho's Guide to Drupal+AngularNacho's Guide to Drupal+Angular
Nacho's Guide to Drupal+AngularJoe Tippetts
 
Offline Drupal with progressive web app
Offline Drupal with progressive web appOffline Drupal with progressive web app
Offline Drupal with progressive web appThéodore Biadala
 
Using deploy in drupal 8
Using deploy in drupal 8Using deploy in drupal 8
Using deploy in drupal 8timmillwood
 

Viewers also liked (6)

Offline & Online Scenario For An Interactive Adobe
Offline & Online Scenario For An Interactive AdobeOffline & Online Scenario For An Interactive Adobe
Offline & Online Scenario For An Interactive Adobe
 
What Really Changed with Drupal 8
What Really Changed with Drupal 8What Really Changed with Drupal 8
What Really Changed with Drupal 8
 
Nacho's Guide to Drupal+Angular
Nacho's Guide to Drupal+AngularNacho's Guide to Drupal+Angular
Nacho's Guide to Drupal+Angular
 
Offline Drupal with progressive web app
Offline Drupal with progressive web appOffline Drupal with progressive web app
Offline Drupal with progressive web app
 
Using deploy in drupal 8
Using deploy in drupal 8Using deploy in drupal 8
Using deploy in drupal 8
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 

Similar to Let's Take Drupal Offline!

Online productivity tools - SILS20090
Online productivity tools - SILS20090Online productivity tools - SILS20090
Online productivity tools - SILS20090is20090
 
Secret Performance Metric - Armada JS.pdf
Secret Performance Metric - Armada JS.pdfSecret Performance Metric - Armada JS.pdf
Secret Performance Metric - Armada JS.pdfAnna Migas
 
Cloud computing: how will it affect my everday work life?
Cloud computing: how will it affect my everday work life?Cloud computing: how will it affect my everday work life?
Cloud computing: how will it affect my everday work life?Kosie Eloff
 
Website and it's importance
Website and it's importanceWebsite and it's importance
Website and it's importanceRobinSingh347
 
Secret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeSecret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeAnna Migas
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingMark Hinkle
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of TechnologiesChris Mitchell
 
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite Keiko Ogura
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesKasper Nissen
 
14 technologies every web developer should be able to understand
14 technologies every web developer should be able to understand14 technologies every web developer should be able to understand
14 technologies every web developer should be able to understandUm e Farwa
 
IESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real WorldIESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real WorldSrinath Perera
 
2016 05 sanger
2016 05 sanger2016 05 sanger
2016 05 sangerChris Dwan
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011Gerardo Pardo-Castellote
 
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016Prateek Jain
 
Cloud Computing
Cloud Computing Cloud Computing
Cloud Computing NASIMTAHIR2
 
Network media presentation
Network media presentationNetwork media presentation
Network media presentationssatchell
 
Network media presentation
Network media presentationNetwork media presentation
Network media presentationssatchell
 
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)DrupalCape
 

Similar to Let's Take Drupal Offline! (20)

Online productivity tools - SILS20090
Online productivity tools - SILS20090Online productivity tools - SILS20090
Online productivity tools - SILS20090
 
Secret Performance Metric - Armada JS.pdf
Secret Performance Metric - Armada JS.pdfSecret Performance Metric - Armada JS.pdf
Secret Performance Metric - Armada JS.pdf
 
Cloud computing: how will it affect my everday work life?
Cloud computing: how will it affect my everday work life?Cloud computing: how will it affect my everday work life?
Cloud computing: how will it affect my everday work life?
 
Website and it's importance
Website and it's importanceWebsite and it's importance
Website and it's importance
 
Secret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeSecret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBe
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
 
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and Kubernetes
 
14 technologies every web developer should be able to understand
14 technologies every web developer should be able to understand14 technologies every web developer should be able to understand
14 technologies every web developer should be able to understand
 
cloud computing
cloud computingcloud computing
cloud computing
 
IESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real WorldIESL Talk Series: Apache System Projects in the Real World
IESL Talk Series: Apache System Projects in the Real World
 
2016 05 sanger
2016 05 sanger2016 05 sanger
2016 05 sanger
 
A Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdogA Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdog
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
 
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
Build Mobile Applications with Headless Drupal 8 - DrupalConAsia 2016
 
Cloud Computing
Cloud Computing Cloud Computing
Cloud Computing
 
Network media presentation
Network media presentationNetwork media presentation
Network media presentation
 
Network media presentation
Network media presentationNetwork media presentation
Network media presentation
 
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
DrupalCon Chicago 2011 ReportBack (11/03/30 - G. Bedford)
 

More from Dick Olsson

Workflow Initiative Update
Workflow Initiative UpdateWorkflow Initiative Update
Workflow Initiative UpdateDick Olsson
 
Multisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsMultisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsDick Olsson
 
We need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreWe need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreDick Olsson
 
Content Staging in Drupal Core
Content Staging in Drupal CoreContent Staging in Drupal Core
Content Staging in Drupal CoreDick Olsson
 
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's PublishersHow to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's PublishersDick Olsson
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build themDick Olsson
 

More from Dick Olsson (6)

Workflow Initiative Update
Workflow Initiative UpdateWorkflow Initiative Update
Workflow Initiative Update
 
Multisite Content Deployments for Media Organizations
Multisite Content Deployments for Media OrganizationsMultisite Content Deployments for Media Organizations
Multisite Content Deployments for Media Organizations
 
We need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal coreWe need revisions and CRAP everywhere in Drupal core
We need revisions and CRAP everywhere in Drupal core
 
Content Staging in Drupal Core
Content Staging in Drupal CoreContent Staging in Drupal Core
Content Staging in Drupal Core
 
How to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's PublishersHow to Build a Scalable Platform for Today's Publishers
How to Build a Scalable Platform for Today's Publishers
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

Let's Take Drupal Offline!

  • 1. Let's Take Drupal Offline!
  • 2. Dick Olsson Twitter: @dickolsson Drupal.org: dixon_
  • 3. Agenda 1. How we think about users and connectivity 2. What's an “offline” website? 3. Reasons to design for offline 4. Are we there yet? 5. Where's Drupal 8?
  • 4. 1. How we think about users and connectivity Attribution: https://www.flickr.com/photos/kansirnet/
  • 5. Users on latest technology and robust connection People are getting newer faster phones Connectivity will solve itself over time
  • 7. Non-negotiable Geography (e.g. valleys, buildings) Transportation (e.g. trains, tube) Over-crowded places (e.g. DrupalCon) Attribution: https://www.flickr.com/photos/footfun/
  • 8. “Once out of bed, Internet and apps are used almost constantly, peaking during the daily commute with around 70 percent usage” - Ericsson Traffic and Market Report, June 2012 Attribution: https://www.flickr.com/photos/59949757@N06/
  • 9. Offline is a part of normal life
  • 10. 2. What's an “offline” website?
  • 11. “We live in a disconnected & battery powered world, but our technology and best practices are a leftover from the always connected & steadily powered past.” - offlinefirst.org
  • 12. It's about putting the user first and not think about her position or connectivity as a state of error
  • 13.
  • 14. Offline apps are not new, but the “offline-first” mantra is
  • 15. Examples 1. Download all pages in the main menu on first visit 2. Download search results for popular queries on first visit, like php.net
  • 16. 3. Reasons to design for offline
  • 17. Privacy Users controll their own data, literally Often no need to share preferences and personal data with the central database Decentralization is a good thing
  • 18. Security Do you really need all the data everywhere? Minimizes the attack vector of your app
  • 19. Performance We put things on CDNs to get closer to the user Put it in my pocket instead!
  • 20. Robustness In the Tube? Or server maintenance? Your app doesn't care
  • 21. So far 1. How we think about users and connectivity 2. What's an “offline” website? 3. Reasons to design for offline
  • 22. 4. Are we there yet?
  • 23. What's required? A. The app itself (e.g. html, css, js) B. Remote database (that syncs over HTTP) C. Local database (that syncs over HTTP) D. Runtime (e.g. web browser)
  • 24. “Any application that can be written in JavaScript, will eventually be written in JavaScript” - Jeff Atwood “Atwood's Law”
  • 25. A. The app itself Angular JS Ember JS React JS Hood.ie etc. etc...
  • 26. B. Remote database CouchDB Remotestorage.io both standardizes synchronization over HTTP
  • 27. C. Local database PouchDB (works with CouchDB) Hood.ie (works with CouchDB)
  • 28. “At some point in time recently, the browser transformed from being an awesome interactive document viewer into being the world's most advanced and widely-distributed application runtime” - Tom Dale Progressive Enhancement is Dead
  • 29. D. Runtime HTML5 Appcache Service Workers
  • 30. Appcache Cache manifest for assets (e.g. html, css, js, img etc)
  • 31. Service Workers A background process that can act like a proxy between your app and databases (local and remote) Not yet good browser support
  • 32. 5. Where's Drupal 8 in all of this? Attribution: https://www.flickr.com/photos/adamnewulm/
  • 33. “Headless Drupal” is a step in the right direction Attribution: https://www.flickr.com/photos/cgc76/
  • 34. But “headless” misses the point We should use the same technologies to build for “offline-first” instead
  • 35. Drupal 8 would be your remote DB
  • 36. But the REST API in Drupal 8 core is missing Revisioning Synchronization File attachments
  • 37. Relaxed Web Services http://drupal.org/project/relaxed Replication Web Service http://drupal.org/project/replication These modules implement the same HTTP and sync API as CouchDB
  • 38. When we standardize the HTTP API the frontend app can use standard tools, such as PouchDB (works with CouchDB) Hood.ie (works with CouchDB)
  • 39. Reimagining best practices and patterns will still be hard
  • 40. Conclusions Offline is a non-negotiable part of normal life Don't treat offline as an error Privacy, security, performance, robustness Possible to build offline capable websites with Drupal 8
  • 42. Thanks! Questions? Twitter: @dickolsson Drupal.org: dixon_

Editor's Notes

  1. Emphazise WHY this is for the user - Ex: We can control cookies, why not the same with more granular data? - We need less of FB, Google and the like - Ex: User pref can be local and fetched anon
  2. php.net as an example
  3. The whole industry, not just the Drupal community,need to reimagine how we build things
  4. ASK how many know about “Headless”?