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

Staying functional in bad network conditions


Beyond good, two-way communication with people, there are algorithmic things that we can do to compensate for bad Internet connectivity. This boils down to prioritization. In any nontrivial app, there is a large amount of data that we can cache. However, when network bandwidth is limited, we need to decide which data is most important and send this first.

In our to-do app, there are three types of data: images, maps, and text. Of these, text is low-bandwidth, maps are medium-bandwidth, and images are high-bandwidth. In addition, text is the highest priority and maps and images are the lowest priorities.

Thus, we should transmit text first. As maps and images are of equal priority but images are substantially larger, we should transmit maps second and images third. That's the relative priority of each format, but how do we decide which lists/items to cache?

One approach is to keep track of the most commonly viewed lists and cache these first. Another...