SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
M A K I N G Y O U R A P P R E S I L I E N T
T O N E T W O R K FA I L U R E S
O F F L I N E - F I R S T
W H O A M I ?
M A K I N G Y O U R A P P R E S I L I E N T
T O N E T W O R K FA I L U R E S
O F F L I N E - F I R S T
M O B I L E W O R L D
W E L I V E I N A N I N C R E A S I N G LY
B E I N G O F F L I N E I S A G I V E N ,
N O T A N E X C E P T I O N .
H O W C A N A P P L I C AT I O N
D E V E L O P E R S H A N D L E T H I S ?
N O T M Y P R O B L E M
N O T I F Y T H E U S E R
E R R O R H A N D L I N G
H A N D L E I T C A S E B Y C A S E
O F F L I N E - F I R S T D E V E L O P M E N T
S E R V I C E W O R K E R S
“A service worker is a script that your browser runs in the
background, separate from a web page, opening the
door to features that don't need a web page or user
interaction.”
S E R V I C E W O R K E R S
“Using service worker you can hijack connections,
fabricate, and filter responses. Powerful stuff.”
https://developers.google.com/web/fundamentals/
getting-started/primers/service-workers
S E R V I C E W O R K E R S
I’m not here to talk about Service Workers..
D ATA S Y N C
I ’ M H E R E T O TA L K A B O U T
C O U C H D B
F E AT U R E S
• Document database
• Versions
• Changes Feed
• Sync
S O M E O P E N - S O U R C E
• POUCH-CLERK
• https://github.com/pgte/pouch-clerk
• Example app
• https://github.com/pgte/pouch-clerk-example-app
D E M O T I M E !
TA K E - A WAY S
• Offline is a given, not an exception
• You should not handle networking errors case-by-case
• Embrace offline-first techniques
• Sync is your friend
T H A N K Y O U ! 

O N S L I D E S H A R E :
bit.ly/2pkU4pQ
Q U E S T I O N S ?
C R E D I T S
• Hans Kylberg - https://www.flickr.com/photos/visulogik/1619008375
• Vodafone UK slide: Jake Archibald, Google I/O
• Machinery: Franz Zajizek, Astronomical Clock Machinery - https://
commons.wikimedia.org/wiki/File:Vienna_-
_Vintage_Franz_Zajizek_Astronomical_Clock_machinery_-_0518.jpg
• HospitalRun images: @ Cure.org
• Monolith: Expo Murten: https://commons.wikimedia.org/wiki/File:
20020719_Expo_Murten_10.JPG

Más contenido relacionado

La actualidad más candente

UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy KaluUX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy KaluUX Antwerp Meetup
 
Admissions Brain Dump
Admissions Brain DumpAdmissions Brain Dump
Admissions Brain DumpDave Olsen
 
Implementing Brand Patterns
Implementing Brand PatternsImplementing Brand Patterns
Implementing Brand PatternsDave Olsen
 
Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)Andrea Volpini
 
Socialmediastenden
SocialmediastendenSocialmediastenden
SocialmediastendenSascha Funk
 
Rp2-2015 - technology driven macro trends in marketing space
Rp2-2015 -  technology driven macro trends in marketing space Rp2-2015 -  technology driven macro trends in marketing space
Rp2-2015 - technology driven macro trends in marketing space Ravi Pal
 
Informed Design - Color by Numbers
Informed Design - Color by NumbersInformed Design - Color by Numbers
Informed Design - Color by NumbersIan Wilson
 
Rp2-2015-Interface & digital experiences
Rp2-2015-Interface & digital experiencesRp2-2015-Interface & digital experiences
Rp2-2015-Interface & digital experiencesRavi Pal
 
Rp2-2015-technology trends enriching consumer experience
Rp2-2015-technology trends enriching consumer experienceRp2-2015-technology trends enriching consumer experience
Rp2-2015-technology trends enriching consumer experienceRavi Pal
 
Lessons learned in business
Lessons learned in businessLessons learned in business
Lessons learned in businessIan Wilson
 
If Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
If Fanon Had Facebook: Digital Postcolonial Knowledge and the RhizomeIf Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
If Fanon Had Facebook: Digital Postcolonial Knowledge and the RhizomeAdeline Koh
 
WWV2015: Remco Bron_InBeacon_keynote a_22 jan
WWV2015: Remco Bron_InBeacon_keynote a_22 janWWV2015: Remco Bron_InBeacon_keynote a_22 jan
WWV2015: Remco Bron_InBeacon_keynote a_22 janwebwinkelvakdag
 
Semantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLiftSemantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLiftAndrea Volpini
 
Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化Christina Lin
 
Rp2-2015 - Experience - Tools n Methods
Rp2-2015 - Experience - Tools n MethodsRp2-2015 - Experience - Tools n Methods
Rp2-2015 - Experience - Tools n MethodsRavi Pal
 
Feels.js – Growth, Emotions And Success In Tech
Feels.js – Growth, Emotions And Success In TechFeels.js – Growth, Emotions And Success In Tech
Feels.js – Growth, Emotions And Success In TechFITC
 
Mobile Resources Use in a Distance Learning Population
Mobile Resources Use in a Distance Learning PopulationMobile Resources Use in a Distance Learning Population
Mobile Resources Use in a Distance Learning PopulationBillie Anne Gebb
 

La actualidad más candente (20)

UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy KaluUX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
 
Admissions Brain Dump
Admissions Brain DumpAdmissions Brain Dump
Admissions Brain Dump
 
Experiencing a FabLab
Experiencing a FabLabExperiencing a FabLab
Experiencing a FabLab
 
Implementing Brand Patterns
Implementing Brand PatternsImplementing Brand Patterns
Implementing Brand Patterns
 
Interactive and Transmedia Storytelling [Day 1]
Interactive and Transmedia Storytelling [Day 1]Interactive and Transmedia Storytelling [Day 1]
Interactive and Transmedia Storytelling [Day 1]
 
Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)
 
Socialmediastenden
SocialmediastendenSocialmediastenden
Socialmediastenden
 
Rp2-2015 - technology driven macro trends in marketing space
Rp2-2015 -  technology driven macro trends in marketing space Rp2-2015 -  technology driven macro trends in marketing space
Rp2-2015 - technology driven macro trends in marketing space
 
Informed Design - Color by Numbers
Informed Design - Color by NumbersInformed Design - Color by Numbers
Informed Design - Color by Numbers
 
Rp2-2015-Interface & digital experiences
Rp2-2015-Interface & digital experiencesRp2-2015-Interface & digital experiences
Rp2-2015-Interface & digital experiences
 
Agile and Scrum Methodology
Agile and Scrum MethodologyAgile and Scrum Methodology
Agile and Scrum Methodology
 
Rp2-2015-technology trends enriching consumer experience
Rp2-2015-technology trends enriching consumer experienceRp2-2015-technology trends enriching consumer experience
Rp2-2015-technology trends enriching consumer experience
 
Lessons learned in business
Lessons learned in businessLessons learned in business
Lessons learned in business
 
If Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
If Fanon Had Facebook: Digital Postcolonial Knowledge and the RhizomeIf Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
If Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
 
WWV2015: Remco Bron_InBeacon_keynote a_22 jan
WWV2015: Remco Bron_InBeacon_keynote a_22 janWWV2015: Remco Bron_InBeacon_keynote a_22 jan
WWV2015: Remco Bron_InBeacon_keynote a_22 jan
 
Semantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLiftSemantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLift
 
Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化
 
Rp2-2015 - Experience - Tools n Methods
Rp2-2015 - Experience - Tools n MethodsRp2-2015 - Experience - Tools n Methods
Rp2-2015 - Experience - Tools n Methods
 
Feels.js – Growth, Emotions And Success In Tech
Feels.js – Growth, Emotions And Success In TechFeels.js – Growth, Emotions And Success In Tech
Feels.js – Growth, Emotions And Success In Tech
 
Mobile Resources Use in a Distance Learning Population
Mobile Resources Use in a Distance Learning PopulationMobile Resources Use in a Distance Learning Population
Mobile Resources Use in a Distance Learning Population
 

Similar a Offline-first: Making your app resilient to network failures

From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsRonald Ashri
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsRonald Ashri
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for ManagersRandy Connolly
 
Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Richard McIntyre
 
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
#Winning at Instagram, or How to Learn to Stop Worrying and Love the AlgorithmKate O'Neill
 
Delight Your Customers with Modern SEO
Delight Your Customers with Modern SEODelight Your Customers with Modern SEO
Delight Your Customers with Modern SEOCharlotte Han
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018Codemotion
 
Social Media, Keeping up to date, Pure and more : The Leiden talk
Social Media, Keeping up to date, Pure and more  : The Leiden talkSocial Media, Keeping up to date, Pure and more  : The Leiden talk
Social Media, Keeping up to date, Pure and more : The Leiden talkGuus van den Brekel
 
Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!Chris Snook
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedIlia Idakiev
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestSuman Karumuri
 
Design for Startups
Design for StartupsDesign for Startups
Design for StartupsPek Pongpaet
 
CIA For WordPress Developers
CIA For WordPress DevelopersCIA For WordPress Developers
CIA For WordPress DevelopersDavid Brumbaugh
 
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web DesignMaking Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web DesignJenny Magic
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT careerJohn Mark Troyer
 
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS SummitGain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS SummitAmazon Web Services
 
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS SummitCanary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS SummitAmazon Web Services
 

Similar a Offline-first: Making your app resilient to network failures (20)

From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dots
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the Dots
 
The Digital Transformation: A New World Order
The Digital Transformation: A New World OrderThe Digital Transformation: A New World Order
The Digital Transformation: A New World Order
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for Managers
 
Slip indholdet fri
Slip indholdet friSlip indholdet fri
Slip indholdet fri
 
Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?
 
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
 
Delight Your Customers with Modern SEO
Delight Your Customers with Modern SEODelight Your Customers with Modern SEO
Delight Your Customers with Modern SEO
 
The Road to QA
The Road to QAThe Road to QA
The Road to QA
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
 
Social Media, Keeping up to date, Pure and more : The Leiden talk
Social Media, Keeping up to date, Pure and more  : The Leiden talkSocial Media, Keeping up to date, Pure and more  : The Leiden talk
Social Media, Keeping up to date, Pure and more : The Leiden talk
 
Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of Speed
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@Pinterest
 
Design for Startups
Design for StartupsDesign for Startups
Design for Startups
 
CIA For WordPress Developers
CIA For WordPress DevelopersCIA For WordPress Developers
CIA For WordPress Developers
 
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web DesignMaking Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT career
 
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS SummitGain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
 
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS SummitCanary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
 

Más de Pedro Teixeira

Building Decentralised Realtime Collaborative Applications - Building Google ...
Building Decentralised Realtime Collaborative Applications - Building Google ...Building Decentralised Realtime Collaborative Applications - Building Google ...
Building Decentralised Realtime Collaborative Applications - Building Google ...Pedro Teixeira
 
How to build a reliable checkout experience
How to build a reliable checkout experienceHow to build a reliable checkout experience
How to build a reliable checkout experiencePedro Teixeira
 
How to build a reliable checkout experience
How to build a reliable checkout experienceHow to build a reliable checkout experience
How to build a reliable checkout experiencePedro Teixeira
 
Document-Driven transactions
Document-Driven transactionsDocument-Driven transactions
Document-Driven transactionsPedro Teixeira
 
Node Anti-Patterns and Bad Practices
Node Anti-Patterns and Bad PracticesNode Anti-Patterns and Bad Practices
Node Anti-Patterns and Bad PracticesPedro Teixeira
 
Node.js a-deep-dive 2-final
Node.js a-deep-dive 2-finalNode.js a-deep-dive 2-final
Node.js a-deep-dive 2-finalPedro Teixeira
 

Más de Pedro Teixeira (6)

Building Decentralised Realtime Collaborative Applications - Building Google ...
Building Decentralised Realtime Collaborative Applications - Building Google ...Building Decentralised Realtime Collaborative Applications - Building Google ...
Building Decentralised Realtime Collaborative Applications - Building Google ...
 
How to build a reliable checkout experience
How to build a reliable checkout experienceHow to build a reliable checkout experience
How to build a reliable checkout experience
 
How to build a reliable checkout experience
How to build a reliable checkout experienceHow to build a reliable checkout experience
How to build a reliable checkout experience
 
Document-Driven transactions
Document-Driven transactionsDocument-Driven transactions
Document-Driven transactions
 
Node Anti-Patterns and Bad Practices
Node Anti-Patterns and Bad PracticesNode Anti-Patterns and Bad Practices
Node Anti-Patterns and Bad Practices
 
Node.js a-deep-dive 2-final
Node.js a-deep-dive 2-finalNode.js a-deep-dive 2-final
Node.js a-deep-dive 2-final
 

Último

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 

Último (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

Offline-first: Making your app resilient to network failures

  • 1. M A K I N G Y O U R A P P R E S I L I E N T T O N E T W O R K FA I L U R E S O F F L I N E - F I R S T
  • 2. W H O A M I ?
  • 3.
  • 4. M A K I N G Y O U R A P P R E S I L I E N T T O N E T W O R K FA I L U R E S O F F L I N E - F I R S T
  • 5. M O B I L E W O R L D W E L I V E I N A N I N C R E A S I N G LY
  • 6.
  • 7. B E I N G O F F L I N E I S A G I V E N , N O T A N E X C E P T I O N .
  • 8. H O W C A N A P P L I C AT I O N D E V E L O P E R S H A N D L E T H I S ?
  • 9. N O T M Y P R O B L E M
  • 10. N O T I F Y T H E U S E R E R R O R H A N D L I N G
  • 11. H A N D L E I T C A S E B Y C A S E
  • 12.
  • 13. O F F L I N E - F I R S T D E V E L O P M E N T
  • 14. S E R V I C E W O R K E R S “A service worker is a script that your browser runs in the background, separate from a web page, opening the door to features that don't need a web page or user interaction.”
  • 15. S E R V I C E W O R K E R S “Using service worker you can hijack connections, fabricate, and filter responses. Powerful stuff.” https://developers.google.com/web/fundamentals/ getting-started/primers/service-workers
  • 16. S E R V I C E W O R K E R S I’m not here to talk about Service Workers..
  • 17. D ATA S Y N C I ’ M H E R E T O TA L K A B O U T
  • 18. C O U C H D B
  • 19. F E AT U R E S • Document database • Versions • Changes Feed • Sync
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. S O M E O P E N - S O U R C E • POUCH-CLERK • https://github.com/pgte/pouch-clerk • Example app • https://github.com/pgte/pouch-clerk-example-app
  • 35. D E M O T I M E !
  • 36. TA K E - A WAY S • Offline is a given, not an exception • You should not handle networking errors case-by-case • Embrace offline-first techniques • Sync is your friend
  • 37. T H A N K Y O U ! 
 O N S L I D E S H A R E : bit.ly/2pkU4pQ
  • 38. Q U E S T I O N S ?
  • 39. C R E D I T S • Hans Kylberg - https://www.flickr.com/photos/visulogik/1619008375 • Vodafone UK slide: Jake Archibald, Google I/O • Machinery: Franz Zajizek, Astronomical Clock Machinery - https:// commons.wikimedia.org/wiki/File:Vienna_- _Vintage_Franz_Zajizek_Astronomical_Clock_machinery_-_0518.jpg • HospitalRun images: @ Cure.org • Monolith: Expo Murten: https://commons.wikimedia.org/wiki/File: 20020719_Expo_Murten_10.JPG