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

Predicting the future


Up until now, we've assumed a uniform view of the world. Internet connection, when present, is always strong and reliable. If the app is online, we assume that it can synchronize with little or no trouble. Obviously, this is not always the case. The first step to embracing this is to make the app aware of dead zones in the real world.

When a phone goes from good Internet connectivity to bad or no Internet connectivity, make a note of this for future reference. When the phone nears this location again, use passive communication to warn people of impending network troubles.

Writing a predictive algorithm

We'll use location services for this. Our algorithm works as follows:

  • Is our location accurate within 50 meters? If not, exit.

  • Are there any points in our database? If not, save the current position (and online/offline state) and exit.

  • Are we more than ten meters away from the closest point in our database? If so, save the current position and online state.

  • Are we within ten...