Why Progressive Web Apps are the future

Progressive Web Apps (PWAs) seem to be the future of cross-platform app development. Their ability to function on the web, as native mobile apps, and now even native desktop apps have made them a striking candidate for your next app.

A little background

Let’s dive into the background of PWAs. Believe it or not, this all goes back to 2007 with the launch of the iPhone. During the launch, Steve Jobs said that the platform for developing apps for the iPhone would basically be web pages that used AJAX architecture and no official SDK. You may find that a little funny since iPhones only just got support for PWAs. The story behind that is that developers were initially frustrated with dynamic and it was traded for the Apple App Store and an official SDK was released. This is what slowed PWA development for the iPhone.

It wasn’t until early in 2010 when web pages started to become more dynamic and responsive. You were now able to seamlessly create web pages with nothing more than HTML, CSS, and JavaScript that looked good on a wide variety of screen sizes. This was all about accessibility, it was now easier than ever to do this and didn’t require a lot of coding.

Fast forward 5 years to 2015 and we’re at the point where the term PWA was coined at Google. It was coined by Frances Berriman, a designer at Google, and Alex Russell, a Chrome engineer, to describe a web app that takes advantage of modern browser features that allow you to run them on a native platform.

Back to the current year, 2019, and PWAs are supported on iPhone, Android, Microsoft Edge (I know!), and desktop platforms.

The benefits of a PWA

Why should we care, what is a PWA going to do for me? We should all care because this is the simplest route to building a true cross-platform application. With a PWA you can truly build it once and run it everywhere, even from both the Apple App Store and Google Play Store. Running your PWA on app stores is beyond the scope of this article, but it is 100% possible and very cool. If you want to see a fantastic tutorial, you can watch Jeff Delaney show you step by step how to deploy to the Google Play store here. You may be wondering why you would want to publish your PWA to the app store and, in short, that’s where your users are going to be looking for your app.

One amazing benefit of PWAs is that they are fast. How are they so fast you may wonder? PWAs are pre-cached on the device and don’t depend on the network to load. That’s right, even if your users are offline they can still load your app. This is a major benefit because not only does this make your app load super quickly, it also gives your users a fantastic experience on your app. It’s reported that 53% of users will abandon your site if it doesn’t load within the first 3 seconds, so speed is a key factor. This also uncovers another gem, that your app will not be dependent on the user’s network. This is fantastic if a user’s internet cuts out or if they just have a slow connection.

PWAs look and feel like native apps. Whether your users download your PWA from the play store or from the web they won’t be able to tell the difference from their other apps. This is a great thing to keep in mind for usability, your users will feel right at home with your app.

You may also be wondering, what about things like camera/gallery accessibility, notifications, and other native features. Many of these features, specifically around camera/gallery access are already built into most modern browsers!

The Drawbacks

There are so many awesome aspects of PWAs, but there are some drawbacks. While you can do a lot with PWAs there are some native features that are not available to you. You can go here to see all the permissions you have access to on the web natively, along with the ones you do not. As you can see, you have a fantastic range of functionality right from the web, but you can also see where a native app would be more beneficial. If you’re making use of any of the on-board sensors you really need to build a native app.

I mentioned deploying PWAs to the Apple App Store and Google Play store. If you watched the video I linked to, you’ll see how easy it is to deploy to the Google Play store. However, Apple is not so open about publishing PWAs to the App Store. While Apple supports PWAs, you can’t publish to the Apple App store like you would to the Google Play store. You would have to wrap your app in with Ionic or Cordova in order to have it published to the Apple App Store. Publishing Apple Apps, in general, can be a giant pain in the ass, but publishing a PWA can be particularly painful.

Conclusion

PWAs give web developers a TON of flexibility, as well as a true ability to build once and run everywhere. You can do a lot more with a PWA than you think, and making smart use of the features of a PWA you can get your web app to look and behave like a great mobile app. There are a few drawbacks that may make you not want to build a PWA and sometimes it’s not always the right option. My hope for the future of the PWA is that they get full native functionality and we continue to push forward with PWA development. I will be doing a follow-up article on how to build a PWA with Angular, so keep your eyes peeled for that one!

If you’ve enjoyed this article I’d love for you to join my mailing list where I send out additional tips & tricks!

If you found this article helpful, interesting, or entertaining buy me a coffee to help me continue to put out content!


📝 Read this story later in Journal.

👩‍💻 Wake up every Sunday morning to the week’s most noteworthy stories in Tech waiting in your inbox. Read the Noteworthy in Tech newsletter.

Previous
Previous

TypeScript Tip of the Week: Generics

Next
Next

How to use the GitHub Package Registry