Microsoft is preparing to release their fifth feature update for Windows 10 in the next couple of weeks. Among its many new features: support for Progressive Web Applications. Although this capability might be new for Windows 10, it has been around for a while. In order to understand what this Progressive Web Applications support means for app developers, we need to look back at the history of and understand exactly what Progressive Web Applications are.
How Progressive Web Applications Got Their Start
Progressive Web Applications got their start back in the mid-2000's. Thanks to technology like server-side scripting languages such as PHP, static web pages were slowly replaced by more dynamic content. On client devices, responsive web design started using code that allowed web content to flow into the screen size of whatever device displayed the page.
However, those apps performed poorly when compared to native apps built to take advantage of OS-level capabilities and did not depend on loading content entire web pages from a distant server -- and let's not even address compatibility issues with mobile web browsers in the 2000s. In addition, mobile connection speeds did not break any records in those days either.
Thanks to modern web browsers and much faster connection speeds, there is a new emphasis on Progressive Web Applications.
Characteristics of Progressive Web Applications
According to Google Engineer Alex Russell and Frances Berriman, the people credited with codifying the Progressive Web Applications description, these applications should have the following attributes:
- Responsive to fit any form factor
- Connectivity-independent with offline capabilities
- App-like-interactions to provide navigation and other app interactions
- Fresh content which is always up to date
- Safe and served via a Transport Security Layer (TLS) for privacy and data protection/security
- Discoverable as applications due to their app manifests and accessible to search engines for cataloging/indexing
- Re-engageable through the use of OS features such as Push Notifications
- Installable to device home screens when browsed through a system prompt when the Progressive Web Application is discovered through its app manifest
- Linkable so they can be easily shared across social channels and other forums plus simple to install
At that time, Russell and Berriman indicated no intent for the distribution of Progressive Web Applications through app stores.
However, times are changing.
How Progressive Web Applications Actually Work
A Progressive Web Application's functionality comes from a hosted web application on a company server. Web developers add updates, including new features and capabilities, on the server side. These updates become available to the end users the next time they visit the site.
The app framework itself, which conforms with the UI and tools of its respective platform, contains the code to help developers receive feedback from customers and collect telemetry about app utilization. In addition, it allows the Progressive Web Application to run in a sand-boxed environment for safety and security.
The majority of updates enter on the server side with the actual app framework only requiring occasional updates. This greatly simplifies the complexity and upkeep of the store app.
Microsoft plans to allow developers to submit Progressive Web Applications directly to the Microsoft Store. Using the Bing search engine, they will also automatically scan the web for what they call quality Progressive Web Applications and place them in the Microsoft Store.
Developers may claim their apps once in the store and take over their update and maintenance.
Who Supports Progressive Web Applications Now
As of right now, Google, Apple, and Microsoft now support Progressive Web Applications.
This new support in Windows 10 is getting tested through an update to the official Twitter app in the Microsoft Store.
Twitter's Universal Windows Platform (UWP) app in the Microsoft Store has languished for months. It lacked now basic features such as 280 character tweets, bookmarking, and images in direct messages. Features like these became available on the Twitter website and iOS/Android apps almost immediately.
On 23 March, while Microsoft began wrapping up development of the next feature update for Windows, Twitter turned their UWP app into a Progressive Web Application. This new app was available to Microsoft's Windows Insiders in an open beta test.
Since then, Twitter issued three app updates through the Microsoft Store.They added several new features via the application on their server. The new capabilities included hooks into the operating system for push notifications and sharing content to the Twitter app.
This app received more updates in this three week period than it did over the previous 6-8 months. I call that a huge success up until this point.
Progressive Web Applications and Native App Developers
Since the majority of updates for Progressive Web Applications happen on the server side that becomes the focal spot. Although similar, the work of web developers and native app developers are different in many ways. Since most of the work happens on the web side, that means simpler app frameworks are less challenging to create and maintain.
This situation causes some consternation on the part of native app developers who once again see their livelihood and skills at risk due to this shift. Not an unfamiliar experience - especially for Windows developers.
The concern which a few developers shared with me on social media is genuine.
Companies see Progressive Web Applications with dollar signs in their eyes, because they can teach web developers how to build the simpler app framework. In addition, that same person then updates and maintains the server side of the app. Result: Immediate cost savings.
What is a native app developer supposed to do at this point? Native apps are not going to suddenly disappear in the next six months. However, recognizing a transition is ongoing can be very important.
Want to Learn More about Progressive Web Applications? Some Suggestions
- Keep up your native app development skills including learning new technologies when they emerge.
- Endeavor to learn new skills around Progressive Web Application development. Your brain already thinks and sees in code. That makes it much easier for you to learn it than a brand new coder.
- Read up about the implementation of Progressive Web Applications on all the major platforms. While there will be many similarities, each have their own unique approach. Become an expert in this area - it makes you an invaluable asset to your company. It also will reflect well on your resume.
Bottom line: If you have spent any amount of time in technology, you know the only constant is change. Roll with it and continue moving forward when it comes to Progressive Web Applications and your role in their development.