With the introduction of Progressive Web Apps and web platform APIs such as persistent storage, payments, and geolocation, the web platform is taking on native apps. A Progressive Web App combines the best parts both a web app and a native app. You browse to a Progressive Web App just like you browse to any other website. It lives at a URL, can be indexed by search engines, and can be linked to from anywhere else on the web. As you continue to use a Progressive Web App it gains additional native app-like capabilities. For example, the app could be installed to the home screen on your device. You might also grant the app the ability to send you push notifications, or the ability to access your camera, your microphone, or other device resources.

One important aspect of Progressive Web Apps is the concept of building your app to be Offline First. With an Offline First approach, you design your app for the most resource-constrained environment first. This approach provides a consistent user experience whether the user's device has no connectivity, limited connectivity, or great connectivity. One of the biggest benefits of Offline First apps is that they can be very fast, as they provide zero-latency access to content and data stored directly on the device.

The Service Worker API can do most of the heavy lifting when it comes to storing content and assets for Offline First Progressive Web Apps. A bigger challenge can be storing and sync'ing your app's data. One of the best answers today for offline sync for Progressive Web Apps is a combination of Apache CouchDB (an open source document database), Hoodie (an open source Node.js backend for Offline First apps), and PouchDB (an open source JavaScript database that syncs). This stack can provide you with the starting point for your own Progressive Web App mobile backend and frontend, and it's entirely open source! You'll leave this workshop having built a fully-functional Offline First Progressive Web Apps using Polymer, Web Components, Service Workers, Apache CouchDB, Hoodie, and PouchDB.


Comments are closed.

Very helpful workshop! Thanks Bradley!

will be great to see a sync conflict solver process

Brian Johnson at 08:54 on 24 Oct 2017

I liked the topic, but the tutorial itself didn't seem a good fit for this time window/format. The tutorial was clearly longer than the time allowed, and the session amounted to: "ok, now do these X steps from the tutorial." Would be better if presenter developed a smaller tutorial that find the allotted time, and actually interacted rather than simply being present while folks work off a pre-existing, publicly available script.

Ryan Szemplak at 08:28 on 26 Oct 2017

Liked the talk and topic but the workshop could've been more involved rather than just following the steps from a github

I misunderstood the "progressive" part of the description, and because of this, I did not get to experience the class the same as other commenters.