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

Future improvements


We've come a long way, but we could take the experience even further. Let's talk about the current limitations of the app and some of the more complicated offline improvements that we've deferred until now.

Conflict resolution

Right now, the app can only resolve conflicts for the description of each to-do item. To do the same for maps and images, you'll need to implement a custom conflict resolution UI for each of these data types. This boils down to diff algorithms. You need a clear and efficient way to show the difference between an arbitrary number of different items. For text, this is relatively easy. For images and other binary data types, this is harder but not impossible. Search the Internet for image comparison algorithms if you're interested in learning more.

The cache size limits

At the moment, we cache everything. This is a trivial approach that works for our to-do app, but when you start dealing with large datasets, you'll need to think about ways to page the...