Microsoft didn’t promote Progressive Web Apps (PWAs) as heavily this week as Google did. But there is some great information to be had.
You can find a complete list of Build 2018 session videos that include Progressive Web Apps content on the Channel 9 website.
Sign up for our new free newsletter to get three time-saving tips each Friday — and get free copies of Paul Thurrott's Windows 11 and Windows 10 Field Guides (normally $9.99) as a special welcome gift!
"*" indicates required fields
Looking this over, there is only a little new information once you get past the “here’s what PWAs are”-type sessions, like Designing for Everyone: Building great web experiences for any device, which is worth watching if you’re still not sure what PWAs are all about. There are a handful of sessions featuring the developers who created certain PWAs, like Starbucks, Twitter, and Cboard. And then there are a handful of Windows developer-specific sessions, like Building Progressive Web Apps for Windows devices.
I think the issue here is that Microsoft is still trying to communicate what PWAs are, exactly, to developers. Meanwhile, Google is already moving on to describing new features.
Microsoft’s developer base needs to get on board with this technology. According to Microsoft’s Aaron Gustafson, “mobile ate the desktop back in October 2016.” I would move the needle back almost a decade: As I’ve noted in the past, the iPhone was released in 2007, and it was the asteroid that killed the Windows dinosaur. And Windows 8, released in 2012, put the final nail in that coffin.
What he’s referring to, of course, is the point in time at which mobile web traffic overtook desktop web traffic. That’s a subset of the “mobile first, cloud first” trends that define the current generation of personal computing by my own measure. And to be clear, this is just the web. Actual usage on mobile devices—and engagement—is much higher than is the case on the PC desktop.
But his point is sound: When you compare web traffic across platforms, you see that mobile doesn’t beat desktop by a wide margin. And in some important sub-markets—like news and finance—desktop traffic actually remains on top. And desktop users tend to spend more time on websites than do mobile users. The engagement is actually higher for PWAs than for mobile apps, something each of the PWA developers noted above mentions in their respective sessions.
Put simply, when it comes to the web, the desktop matters. And that explains, in part, why Microsoft has embraced PWAs.
As for Windows developers specifically, Jeff Burtoft’s Building Progressive Web Apps for Windows devices is the key session. (I met Jeff in person briefly at Build and we tried to connect later, but failed. I’m hoping to speak to him again soon.)
Skipping past all the important but oft-repeated information about PWAs, Jeff’s session provides a few interesting details about the future of the platform on Windows 10.
Microsoft wants Windows to provide the best PWA experience of any OS platform. PWAs are natively supported in Android and Chrome OS today, and they will see some form of native support on macOS and iOS soon. But Microsoft wants Windows 10 to offer the best possible experience for running PWAs of any of these OS platforms. This is consistent with Microsoft’s goals for Windows apps, generally. Native apps on Windows should always be more powerful, more usable, and more feature-rich than the same or similar apps on other platforms. The progressive nature of PWAs makes this possible: Microsoft can extend the capabilities of PWAs with Windows-specific features.
Windows 10 provides PWA with support for a number of native features. Today in Windows 10 version 1803, developers can add native OS features like password integration, Share integration, notifications and Action Center integration, Start tile pinning, jump list support, Store reviews/feedback integration, Timeline support, and protocol handling. Yes, that last one means that an email PWA could be configured as your default email client in Windows 10.
PWAs can access native code on Windows 10. This one is very much developer-focused, so I’ll dumb it down a bit. One of the jabs against PWAs is that they’re not really “native” apps and thus won’t perform as well as apps that are written in languages like C# and C++. That’s mostly nonsense, actually, but Microsoft also PWAs on Windows 10 to call C# and C++ code (via a bundled WinRT object or portable class library) in order to improve performance where necessary or, more likely, in order to reuse software code you’ve already written. Burtoft calls this “PWA with a splash of native.” And this is how Microsoft built its PWA Teams app, by the way.
They’re not done. The initial release of PWA support in Windows 10 is just the start, Burtoft says. Additional PWA features are coming in future releases of Windows 10. Including, yes, the ability to install PWAs from the web using Microsoft Edge. (This is expected in Redstone 5.) Microsoft is also exploring something called Fluent Web, which will bring the Fluent Design System to PWAs.
Bats
<p>I just have one question.</p><p><br></p><p>Uh….what exactly is new here?</p><p><br></p><p>The way I am reading this, nothing is new. Seriously! About two years ago, Nadella and Microsoft were talking up a storm about AI. Today, … nothing. Microsoft is talking about PWA, like they did with Augmented Reality. Today, pretty much used by everyone and none of them come from Microsoft. Therefore, all this PWA talk reminds me that old commercial (and Walter Mondale) with that saying, "Where's the Beef?"</p><p><br></p>
skane2600
<blockquote><a href="#274880"><em>In reply to Maelstrom:</em></a></blockquote><p>You mean people won't have to launch the browser they're already running? </p>
skane2600
<blockquote><a href="#274939"><em>In reply to rockycpa:</em></a></blockquote><p>It seems you're missing the point. Just because a few sites implement PWAs doesn't mean that users won't have their browsers open to accommodate the vast majority of sites that don't use PWAs. So, at least on a PC, Mac, or Chromebook not having to open a browser really isn't a significant selling point.</p><p><br></p><p>Now avoiding the browser on a smartphone is nice because browsing on smartphones suck. Native apps clearly make that possible and perhaps to some degree PWAs although how effective they work in general and whether they actually save development time over native apps remains to be seen.</p><p><br></p><p>BTW, I'm not the one who voted you down. I very rarely mark someone's comment down just because they disagree with my post.</p>
skane2600
<blockquote><a href="#274999"><em>In reply to rockycpa:</em></a></blockquote><p>Improving your product is usually a good idea (within the constraints of cost and time) whether it's motivated by curiosity over a new technology or just the recognition that it is less than it could be. </p>
Stooks
<blockquote><a href="#274939"><em>In reply to rockycpa:</em></a></blockquote><p>So what advantage does this give you in your example? A dedicated icon on the iOS desktop for your site vs going to safari and then going to you site?</p><p><br></p><p>You could already put a webpage on the iOS desktop, pin the page. Now if you made a native app for iOS…..</p>
skane2600
<blockquote><a href="#275098"><em>In reply to hrlngrv:</em></a></blockquote><p>There are a lot of unanswered questions. It seem to me if there's one common service it has the potential to be bloated and if there are many smaller services, they could slow the system down. </p><p><br></p><p>I also imagine that every service worker has to be platform-specific. If not, who is going to enforce a common interface across multiple platforms?</p><p><br></p><p>Maybe people with more knowledge can answer those questions, I have to admit I'm not that motivated to go down that particular rabbit hole.</p>
skane2600
<blockquote><a href="#275129"><em>In reply to aThingOrTwo:</em></a></blockquote><p>And every vendor follows w3c standard to the letter, right :)</p><p><br></p><p>Remember also that efficiency of a particular application doesn't determine the overall consumption of CPU Bandwidth on the client. There will probably be other programs running on the client. Processing on the server from the client's point of view is free, but code running on the client isn't.</p>
skane2600
<blockquote><a href="#275164"><em>In reply to aThingOrTwo:</em></a></blockquote><p>"I cannot see PWAs being any more or any less efficient than the web in general."</p><p><br></p><p>So, no, you were not only referring to the client. My point was that service workers use CPU bandwidth in a way that web apps don't even if the efficiency of a particular PWA running on it's own would be just as efficient as a web app.</p>
skane2600
<blockquote><a href="#274854"><em>In reply to hrlngrv:</em></a></blockquote><p>Of course they can't and Service Workers consume CPU cycles just like anything else running locally. I suspect the "efficiencies" of PWA are really just moving the costs around.</p>
skane2600
<blockquote><a href="#274949"><em>In reply to Rob_Wade:</em></a></blockquote><p>I think predicting that even 50% of apps will be PWAs in the next 5 years is very optimistic. </p>
skane2600
<blockquote><a href="#275111"><em>In reply to behindmyscreen:</em></a></blockquote><p>So you're saying the full object model of Excel as it exists today will be accessible by the user via JavaScript? And this has been confirmed by Microsoft?</p>
Stooks
<blockquote><a href="#274949"><em>In reply to Rob_Wade:</em></a></blockquote><p>I think your wrong. Take iOS where there are millions upon million of native apps. If those native apps are replaced by PWA's that do not run as well there will be a huge back lash and people will not use the PWA apps.</p><p><br></p><p>On Windows with the store it could work since a PWA app is better than no apps. I do not think it will take off for Microsoft. Google, sure since we are just getting better Google web apps with PWA's.</p><p><br></p><p>Native > PWA > Web Apps > No apps.</p>
skane2600
<blockquote><a href="#275161"><em>In reply to Stooks:</em></a></blockquote><p>Keep in mind that on Windows it's millions of apps, They just don't happen to be UWP apps. Nobody cares but Microsoft.</p><p><br></p><p>As far as PWA's being better than Web Apps is concerned, it's far to early to tell. The list of claimed attributes for PWA's remind me of the Agile Manifesto. Promised benefits that may or may not actually be achieved. </p>
skane2600
<p>Adding features that are platform-specific is in direct opposition to the purported PWA characteristic of platform independence. Web apps aren't truly WORE, but they come a lot closer than anything that runs native code. </p><p><br></p><p>I suspect that having separate native Windows, MacOs, iOS etc apps is a simpler development model than writing a single PWA that combines multiple platform-specific aspects into one big coupled mess.</p><p><br></p><p>Of course for desktop OS's like Windows and MacOS, web apps are probably the best approach in most cases.</p>
skane2600
<blockquote><a href="#275096"><em>In reply to hrlngrv:</em></a></blockquote><p>The whole point of cross-platform for the user is that they can use the software without regard to which platform they are using. Delivering different features for different platforms goes back at least 30 years. Nothing new.</p><p><br></p><p>WORE will never be achieved regardless of the language used. </p>
skane2600
<blockquote><a href="#275108"><em>In reply to behindmyscreen:</em></a></blockquote><p>Yes, it's up to the developer as it's always been no matter what programming approach one takes. So if the PWA claims change from "PWAs are cross-platform" to "some PWAs are cross-platform" I'm fine with that. </p>
Stooks
<blockquote><a href="#275108"><em>In reply to behindmyscreen:</em></a></blockquote><p>And Microsoft is showing with Teams that it has already deviated from the dream of PWA (same code on all platforms). Sounds a lot like…write once. We all know that never really panned out not even on all Microsoft platforms.</p>
skane2600
<blockquote><a href="#275107"><em>In reply to behindmyscreen:</em></a></blockquote><p>Of course it depends on what the minimum requirements are for classifying a program as a PWA and what definition of "all" you are referring to. If a "PWA" degrades to a web page then so what?</p>
Stooks
<p><span style="color: rgb(0, 0, 0);">"Microsoft’s developer base needs to get on board with this technology". </span></p><p><br></p><p><span style="color: rgb(0, 0, 0);">Hmm lets hope they do so better than Windows Phone, Windows RT and UWP..or even UWP wrapped Win32 apps.</span></p><p><br></p><p><span style="color: rgb(0, 0, 0);">"Burtoft calls this “PWA with a splash of native.” And this is how Microsoft built its PWA Teams app, by the way.</span></p><p><br></p><p>And they have already deviated from the true path of PWA's. Doing this "splash of native" ensures that Microsoft PWA apps will run better on Windows. Unless of course they do a splash of native on other OS's.</p><p><br></p><p>Microsoft future is the cloud and subscriptions, which will make the truck loads of money. Everything else they do is in a free fall right now.</p>
justincrawford
<p>Microsoft needs to release their own client-side PWA framework that is tightly integrated with Visual Studio. I understand that you can build PWA's without tying yourself to a framework, but any serious application will be looking to Angular, React, Vue.js, Polymer, etc. All of which are fine, except none are supported and maintained by Microsoft. Ya, ya… you can use these frameworks with ASP .NET Core/MVC projects, however, none of the documentation talks about any of the quirks you run into using them in Visual Studio. Give us a MS supported client-side framework, with F1/MSDN documentation and examples. Project templates for React/Angular aren't enough. </p>
skane2600
<p>"Microsoft can extend the capabilities of PWAs with Windows-specific features."</p><p><br></p><p>Perhaps they should name their implementation PWA++ to reflect the obvious parallels to J++.</p>