Interview: Progressive Web Apps, explained by Paul Lewis
We had the chance to meet and interview a lot of very interesting Googlers during the last Google I/O. Today it’s Paul Lewis ! We’ll release those interviews (mostly in English) in the upcoming days.
SFEIR: Hi Paul, can you introduce yourself please?
Paul Lewis: My name is Paul Lewis, I work on theWeb Developer Relations team here at Google, where I spend most of my time talking about performance, and today, progressive web apps.
And so, what are progressive web apps?
Paul Lewis : Alex Russell coined the term “progressive web apps” and calls them “websites who took all the right vitamins”. It’s basically a website that you built properly and then you can start to progressively add on extra features, like service workers for offline support, for poor connectivity, for sending push messages, those kinds of things. And I suppose in some ways it’s just an evolution of what the Web has been tending towards anyway. It’s the website that you know and love, where we start to add on these extra bits and pieces, as they’re available and the browsers support them.
What are the use cases for PWA?
Paul Lewis : There are a couple of ways to look at it. One is, if you just want to be able to build a web app, you should be able to do that. That the thing that’s really important to us, as a team. The use case? Anything really! If you can build it, and ship it, that’s it. The great thing about the web is that it’s low friction. You search for something, anything really – you want something to compress images, something that let’s you take notes, whatever it is – if Google gives you back a progressive web app, you use it, and you smile a happy smile! No install steps, that’s the whole point, it’s low friction. But, the good thing about PWA, is that eventually, if the user keeps coming back, Chrome will say “well, you seem to be doing this quite a lot, would you like to add it to your home screen so you don’t have to keep searching for it?” So there is a very natural progression from you, building the app, to the home screen of your users.
You can use PWA for anything, just like the web. Games, news apps, anything.
How would you describe the browser supports for PWA?
Paul Lewis : The clue is sort of in the name, ’cause we’re talking about progressive web apps. You’re still looking for a good base-level experience. If you’re working with a browser that doesn’t have a service worker, you should still have a good way to handle network load, offline mode, and you can enhance your service progressively, as support in the browser becomes better.
You should assume that none of those nice new features are there and your app should still work in that situation. That’s a good thing for the web. You need to give a good experience to everybody. And then, as these features become available, even if some users still turn them off because they don’t want to allow certain permission, your app should be able to handle that as well. The “progressive” isn’t always about the browser supporting it, sometimes the user has to support that use case as well. They have every right to say yes or no to whatever the app asks.
What is your favorite feature in progressive web apps?
Paul Lewis : I love the fact that service workers can smooth the poor connectivity. I hate when my phone tells me that I have a 3G connection, but it’s lying to me, because I’m in a crowded area. If I try to do anything, I see a spinner and nothing will happens. But with a service worker, when you got something from a cache, it can work, it can actually give you a good experience. For me, that’s the exciting thing. The network is no longer the be all / end all. Your app can actually handle this situation. It’s a “normal” situation to have sometime bad / poor connectivity on your device and this feature is a big step forward to make your day better. You don’t have to even think about it anymore.
What’s the best practice to seek the best performances from PWA?
Paul Lewis : Start using something like WebPagetest. If you’re trying to build a progressive web app, you still need to deal with that first load. Reducing your load time is critical. Numbers available everywhere show that it has a huge impact on your business. It’s really worth it to take the time to work on that. I understand that shipping new features is sometimes more fun and some managers are pushing that kind of thing but performance, security and accessibility should be a priority. They are so noticeable when they are missing from an app or site. You can’t “add performance” after your features, you need to think about it from the start.
Do you think HTTP2 will enhance PWA?
Paul Lewis : It will help. The performance story changes a bit with HTTP2 because you don’t need to necessarily concatenate and minify files, you can do server-side push… All the early signs are very positive, but you still need to be careful because it’s not a magical solution either. But yeah, no more spriting! Fabulous isn’t it , it’s so good!
Thank you Paul!
No, thank you!
Note: if you want even more information, you can read this post or watch this talk, both by Alex Russell.