If you have been to any conference in the last five years, you have probably heard about Progressive Web Apps (PWA). Web sites that can progressively turn into app-like experiences and be installed on your devices. Kenneth Rohde Christiansen is Senior Web Platform Architect at Intel Corporation and an elected member of the W3C Technical Architect Group (TAG). He’s currently working on making Progressive Web Apps more capable as part of Project Fugu, an effort to close gaps in the web‘s capabilities enabling new classes of applications to run on the web. I spoke with him before his presentation at Codemotion’s online conference: The Italian edition to find out more.
What’s the genesis of progressive web apps?
According to Christian, “For many years, people working with the web have wanted something like progressive web apps. I used to work for Nokia, and at that point, people could write kind of native-like applications using the web. It was the same thing when the iPhone came out; you had ‘Add to Home screen‘. A lot of like people that were web developers were also interested in also building apps for these devices. But they were limited in comparison to what you could do on other platforms.”
Himself and others working on the web pushed the idea, “Hey, we should make this possible, the Add to Homescreen idea is great. What do we need to really take this to the next level?”
Corporations focused on creating packaged apps without standards, which Christian felt removed some of the advantages of the web itself. In response, he and others created the Web app manifest. It may look simple today but was an extensive effort. Christian recalls: “We had to figure out requirements. How do we make sure that it looks like a full-screen app or as a standalone window of the desktop? What about the icons? Where should you launch the app? And we turned that into a standard.”
The manifest caught the interest of Google, where some of the developers got so excited that they started implementing the ideas inside of Chrome on Android. “They saw Add to Homescreen as really the future. At the same time, people at Google came up with this proposal called navigation controller: how do I interact with the network, especially if I’m offline? Can I make an experience a web experience that will work like offline as well, or work with an intermediate network? Mozilla came on board and the project was renamed Service Worker.
Another standard that “allows you whenever you’re fetching a file from a web application, to go through a proxy server, that’s called ServiceWorker, which then can like return that from a cache, or it can get it from a different server. It’s very flexible and allows people to create offline experiences and those that can be considered semi offline, with an intermittent network. That combined with the web manifest Add to Homescreen turned into what we call progressive web apps today.”
There was extensive interest from browser vendors and companies like Samsung for their own internet. It slowly became possible on mobile. Christian believed that the experience should also be available in desktop. While Google saw it at the time of more crucial for mobile, Microsoft started taking an interest, due to their Edge browser. They thought “these progressive web apps will be great for Windows because not everyone wants to create a Windows app from scratch.” Google saw the value for Chrome OS, and since then, like everyone has been pushing progressive web apps.” This included companies that had initial success on mobile that wanted a good desktop experience. “Combined with new API‘s coming to the web, you can really do all the things that you need to do like file access – we’re developing this new specification called file system access, where you can access your local files as you do in any other native app.”
The challenge of upselling progressive web apps to management
Progressive web apps appeal to web developers who want “a very tightly integrated, nice experience that works on mobile and on desktop. They like progressive web apps because like it takes very little effort to get something nice. However, it’s still a lot of effort actually selling that story to your management. Some companies will be reluctant, claiming that most of our users are iOS users. So it doesn’t really matter that we have a native app. So that is still lagging a bit behind.”
Christian, however, believes that the focus on the desktop experience means we are really about to shine.
What’s next for progressive web apps?
Christian spoke of the fast progression in development, nothing that the next big thing is even better integration in host OSs. For example, with Microsoft, if you go to uninstall an app, the PWA will show up. You basically cannot tell that this is not a native app installed on Windows. It’ll be in the taskbar. If you get a notification on the app, it will be able to show this batch on the icon – e.g.l how many unread notifications or news articles you have in the app. There’s jump list – If you long press on an icon or right-click on an icon you get a new message, new event, new calendar shortcuts. They’re even working on the title bar, trying to make it possible to do slight modifications, for example, getting a search bar in the title bar, you see this on Spotify.”
Christian explained, “When you go to a website that is a PWA, you get a few features you won’t get if it’s just in your browser, because it’s installed. Being installed means that it’s kind of there on your system as an icon. That also means that you can share content to this progressive web app. And you can even register the app to open files with it through the file explorer. So this is the kind of level of integration you will be getting with progressive web apps.”
The team is also working on the Fugu API: “We’re trying to make the web more capable of having the same capabilities as any native app, as long as it can be done in a safe way that is privacy-preserving. So progressive web apps are part of specific progressive web technology that will become much more capable.”
Want to learn more?
Join Christian to find out more at The Codemotion Virtual conference: The Italian Edition. A single ticket grants you attendance to four conferences spread over the week, offering a deep dive into a plethora of topics relating to Backend, Frontend, Emerging Technologies, and AI / ML / DL. It’s a fantastic opportunity to learn first-hand about the best state-of-the-art technology, activities, good practices, and case studies for everyone working in tech regardless of your profile or your level of experience.