Progressive Web Apps and how to build them (2 Part Series)
Progressive Web Applications have become all the rage; with companies like Instagram, Twitter, Forbes and Alibaba investing real effort into making their mobile sites feel like native apps. Yet, there are plenty reasons not to make your next mobile app a Progressive Web App instead. The add to homescreen user experience doesn't feel smooth enough, and we can't ignore the snail-like speed at which Apple is implementing PWA features into Safari. So where do we go? What's next for Progressive Web Applications? Allow me to speculate.
The biggest problem with PWAs currently is the lack of native functionality they support on iOS. Push notifications and full sensor information are just two of the major pieces of functionality still missing from Safari on iOS but the list they top is still a long one. We've seen Google massively improve their support, with Chrome on Android now allowing for nearly all native functionality you could wish for. So Apple building full support for native functionality into Safari on iOS seems to be the obvious next step, but with them not mentioning PWAs at all during WWDC, one starts to wonder if they're even interested in truly entering the PWA market.
There are plenty reasons why Apple wouldn't improve their PWA support. Web applications don't pay Apple the 30% "App Store Tax" they get from native apps, they don't give Apple install or usage data and they don't increase the amount of apps on the App Store either. However, with developer interest increasing, and Apple actually having made large strides on their PWA support, it seems to be going the way of the Web Developer. I believe they'll add push notifications by the end of this year, with proper sensor information availability possibly being added in 2020. Google doesn't have much more to improve as far as native support goes, so it's safe to assume they're continue on the path of improving the life of the PWA developer.
A second issue with Progressive Web Applications is that you can't find them in the App Store or Play Store as natively installable apps.
On Android PWAs are actually installed as WebAPKs, and thus live as native applications on your phone. With their introduction of "Google Play iFrame" (I know, what a name) for Managed Google Play, Google has effectively made the first step to allowing PWAs to be published on the Play Store directly, meaning you no longer need to run them as a WebView/in Cordova or deploy them as a TWA.
On iOS, I'm afraid we have no such luck, but it's not entirely unlikely that this type of support will come in the near future. See, if you need to install a PWA from the App Store, you end up paying Apple for distribution again, as well as providing them with install and usage data. This might be the path to both adding App Store Discovery and native functionality support on iOS, all at once.
Going store-first isn't native to Progressive Web Apps. The entire idea of a PWA is that it's installable from your browser without needing to use a store. However, with Apple's need for control over the applications that live on their products, it's almost impossible to see a future where PWAs have all native functionality but aren't listed in the App Store. It's hard to say when Apple and Google will allow PWAs to be listed in the app store but I do believe it'll happen sooner rather than later.
As I mentioned earlier, the "Add to homescreen" experience is seriously lacking. On desktop, it's hard to find and on mobile, it looks terrible if you don't customize it. The line "Add to homescreen" also doesn't mean anything yet to the general public. They're used to installing something on their phones, not adding something to their homescreen. I reckon this wording will change as soon as PWAs are added to their respective app stores and hope to see it changed to "Install app name to your device?"
The process of overriding the "Add to homescreen" popup is actually not difficult at all, and building a custom alert is a great way to make it clearer to your users what happens when you click yes. That's why I don't think this issue is a particularly high-priority one so I expect this naming to change when either Google or Apple decides to give PWAs a bit of a rebranding, probably whenever Apple decides to introduce it as something entirely new they invented; maybe Lightning Apps.
Progressive Web Applications have come an incredibly long way over the last couple years. They went from this little niche functionality to now being used by the largest companies in the world. Time and time again PWAs have proven to be incredibly useful for building apps that feel native without having to learn Swift or Java. I believe the future of PWAs is a bright one, where both Apple and Google support them fully and start seeing them as first-class citizens. I genuinely expect Apple to not go with the "PWA" term and rebrand it as something of their own, but as long as that means we get native functionality on the web, I couldn't care less.
Where do you think Progressive Web Applications are headed?