The service worker script we discussed in the prior section is the core of a PSP but there’s way more we can do to make our reading experiences behave more like native applications. Some of these features are - Push notifications - Background sync While not directly related to service workers this feature may help get better re-engagement from your users: - Installation on mobile home screens Also not directly related to progressive web applications, we can also preserve data, not just content on our web applications using - IndexedDB We’ll discuss them in the sections below. Push notifications Using...
How does this all work? At the core of our progressive subcompact publications is a service worker. This woker is a type of shared worker and it also works as a network proxy for your requests, you can cache responses, provide new responses based on the request you make, provide the basic mechanism to do push notifications and content synchronization in the background. We’ll break down the service worker in two sections: the script and the installation script you add to your entry point usually index.html Service worker: The script This is a fairly common pattern to build a service...
For the past few months I’ve been working at Google building a set of instructor-led courses on how to build progressive web applications. This has made me think of how to push some of these concepts into what I call “Progressive subcompact publications”. These concepts are different than ePub Next and any number of formats vining for use, each of which have issues that are hard to overcome: - They seek to replace the installed EPUB and Kindle user base. Since most users of iBooks and Kindles are locked in to their devices and readers this is not a good...
I started a contract in early June that has swallowed all my time and as a result there have been fewer blogs and, I hate to admit it, with a lower quality than I would like. I also have a few projects that I've been working on for a while and that I want to finally finish and put to rest. These projects and some of the questions they seek to answer are: 1. Long form publishing using Service Workers: An exploration of how far we can push the web as a publishing medium. - What can we do beyond...
The EME controversy rears its ugly head again but this time it seems like it's going to end poorly for users and rather well for content creators. EME as currently implemented would enable closed source DRM on web browsers for movies and tv series through vendors like Hulu and Netflix among others. EME is based HTML5 Media Source Extensionshttps://www.wikiwand.com/en/MediaSourceExtensions, which enables adaptive bitrate streaming in HTML5 using e.g. MPEG-DASH with MPEG-CENC protected content. These forms of protected contents are protected by legislation pieces like Section 1201 of the The Digital Millenium Copyright Acthttps://www.wikiwand.com/en/DigitalMillenniumCopyrightAct in the US; European laws that implement...
Since I decided to do an app shell architecture for the project we'll have to split the way we cache content with service worker. We'll use both sw-precachehttps://github.com/GoogleChrome/sw-precache to cache the app shell and sw-toolboxhttps://github.com/GoogleChrome/sw-toolbox to cache the other pages of the application and any associated resources. Yes, we could build the service worker manually but updating becomes more and more complex. You have to remember to update the worker whenever you make a change and that makes it error prone. I don't particularly like using third party libraries to build my code but in this case the advantages far...
> Third in a series. Other two parts are What kind of web do we want?https://publishing-project.rivendellweb.net/what-kind-of-web-do-we-want/ and Who are the next billion users and how do we accommodate themhttps://publishing-project.rivendellweb.net/who-are-the-next-billion-users/ How we build content that will be read wherever and whenever we are regardless of the device we use to access it? Reading for everyone I’ve also found myself in discussions on Medium about Portable Web Publicationshttps://www.w3.org/TR/pwp/ and when I asked what happens to people using existing devices I used Kobo and iBooks as examples I was told that PWP are web applications not ebooks. So what do you do in...
Where are the next billion users for our applications come from? When answering this question we have to be careful. The answer itself is easy, the implications of the answer, not so much. I'll leverage 2 presentations to support the rest of the essay. Tal Oppenheimer from Google's Chrome team made a very interesting and thought provoking presentation about building the web for the next billion users and what we should consider when building our experiences. Bruce Lawson from Opera takes a different view of the next billion users. He warns us about where these users are coming from and...
The web, technology wise, is in a great place. We’ve grown closer to parity with native apps, that’s the gist of progressive web applications, we can have pretty close to the same experience form web apps as we can from native. Javasacript has improved both in terms of speed and interoperability. New HTML5 APIshttp://html5index.org/index.html have contributed to Javascript resurgence and popularity. It’s also new features in ES6 ratified in 2015 like classes, standardized modules and other APIs make it fun and useful to code in vanilla Javascript. CSS has moved forward y leaps and bounds. We can do a lot...
Progressive and Subcompact Books: Technical notes > This is meant as living document. Feedback is appreciated and will be incorporated when appropriate. The idea is to use this and its sister philosophical document as the basis for a proof of concept application Why a progressive web app? I’ll take the original list of attributes Frances and Alex described for a progressive web application and explain why I consider them important for web publications - Responsive: Let’s face it, reflowable ebooks could look much better. I’m not talking about typography but of essential layout and the inability to use modern web...