Book Image

Offline First Web Development

By : Daniel Sauble
Book Image

Offline First Web Development

By: Daniel Sauble

Overview of this book

When building mobile apps, it’s easy to forget about the moments when your users lack a good Internet connection. Put your phone in airplane mode, open a few popular apps, and you’ll quickly see how they handle being offline. From Twitter to Pinterest to Apple Maps, some apps might handle being offline better—but very few do it well. A poor offline experience will result in frustrated users who will abandon your app, or worse, turn to your competitor’s apps Expert or novice, this book will teach you everything you need to know about designing and building a rigorous offline app experience. By putting the offline experience first, you’ll have a solid foundation to build upon, avoiding the unnecessary stress and frustration of trying to retrofit offline capabilities into your finished app. This basic principle, designing for the worst-case scenario, could save you countless hours of wasted effort.
Table of Contents (17 chapters)
Offline First Web Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

What is a split-brain?


To illustrate the problem, here's a quick diagram:

Split-brain

We can mitigate this problem by increasing the granularity of our data storage. In Chapter 4, Getting Online, the changes were made at the list level. Thus, two people making changes to the same list while offline would always have their changes conflicting. Thanks to the improvements that we made in Chapter 5, Be Honest about What's Happening, each person would have to make a change to the same description, map coordinate, or image for a conflict to occur.

This is vastly improved. However, when a conflict does occur, how do we resolve it? At its core, there are three basic answers. Either Change A wins, Change B wins, or both exist in perpetuity. In addition, depending on how much the owners and collaborators of a list trust each other, we could either allow a single person to resolve the conflict or require input from every person with edit privileges. Let's look at both of these scenarios now.

A collective...