PWAs: Blurring the Lines Between Web and Mobile Apps
PWAs: Blurring the Lines Between Web and Mobile Apps
PWAs are revolutionizing the world of both mobile and web applications. Read on to get an overview of what's going on with PWAs.
Join the DZone community and get the full member experience.Join For Free
Learn how to add document editing and viewing to your web app on .Net (C#), Node.JS, Java, PHP, Ruby, etc.
Steve Job jobs kicked off the smartphone revolution when he introduced the iPhone and on the iPhone there was kind of mobile browser but it was a poor online experience. A year later Apple kicked off the App Store and its store of native apps and this is a really good way of getting online in interacting with online content and I'm sure you've all used loads of apps over the last 10 years.
Gmail app for sending emails, Twitter for sending tweets, and Snapchat for sending two delightful pictures of yourself. Talking about view time with those apps, I'm sure you would have spent many weeks and months playing Flappy Birds.
Since 2008, the mobile web has increased dramatically. I'm sure that many of you are reading this in Chrome.
What Is Exactly a Progressive Web App (PWA)?
Well, the idea goes back to 2015 in an article written by Alex Russell, a Google engineer. In there, he outlined the requirements for PWA, or progressive web applications. Since then, the whole industry has been working towards progressive web apps. So, Google Chrome supports it. Edge will be supporting it in Redstone4. Even Safari is getting a version of it in 11.3, due out later this year.
What makes progressive web apps unique are their abilities. For the first time, web applications can work offline and in the background, and that's done through a thing called service workers.
Think of service workers as little web components that work in the background. They pull in notifications. They cache app data. That's how they work offline. When you launch a progressive web app, it doesn't look like you're in the browser. It looks like an application.
For instance, Instagram has a PWA. If you go to Instagram on your Android phone, assuming it's a modern one, and you log in, you'll be asked if you want to pin this to your start screen or your application screen and would you like to receive notifications. Once you do that and then you open that app, it looks just like the regular Instagram application. In fact, the scrolling is better than a native app of Android, which tells you a lot.
Progressive Web Apps vs Native Apps
Native apps have a huge benefit in loads of areas: they are fast and quick to respond. You've got a really nice icon that you can click on. As soon as you click on that, you get really nice ‘scaffolded’ app screen that comes up. Let's say you go onto Facebook. It's kind of a nice blue look and you have a Facebook icon.
Benefits of Native Apps
When I get my Twitter wrap up, I've got a load of tweets there. From the Twitter app, I can see those straightaway, there's no going into Chrome and trying to find a URL and loading up a page.
Apps also have a smooth consistent, self-contained UI that looks really good on your smartphone. The best part is this that native apps works consistently well offline.
If you are checking your emails in no dead zones, that's no matter. You can check your emails in basements, tube stations, and other no coverage areas. You can even reply to those emails. When you get into a coverage area, the message is sent and all works well.
App Development Can Be Painful
Native app development can be painful. There are different languages between Android and iOS. You got Java, or, perhaps, Kotlin. Otherwise, you're using Swift. You can use React Native and still have to change the way you develop a whole load of things.
In React Native, you have to do different stuff depending on the platform you're on and even then you have to develop differently for the web. You're already developing for three different platforms. It's expensive to develop.
If you want to release apps on the web, it goes to your customer straightaway whereas a native app you have to go through app stores’ certification. There are separate app stores for Android and iOS.
Progressive Web Apps to the Rescue
It got most of the benefits of native apps, including performance and UI tweaks.
Write once, work everywhere. You just build it once and hopefully it should work everywhere. You have one team. Maybe you need a few tweaks depending on the target platform.
What Does Progressive Mean?
Progressive web apps are a case of extra technologies. They can add to the performance of your app. With more of the features, the benefits across desktop and web kind of always keep comparing against native apps but a lot of these performances are also on the website.
If you have a website you don't really care so much about your mobile customers, a lot of these technologies can really improve the performance of your websites.
Discoverability and the Future of App Stores
Since progressive web apps are websites at the end of the day, app stores don't need permission from their publishers to publish on their platform. All they're doing is putting websites in the store. They will act much like website directories. App stores will have to look at PWA sites that are live right now and if they meet certain standards, they're going to be putting these in the store automatically. So, we can probably expect a couple hundred, maybe even a thousand, of these things to all of a sudden show up in the store.
Now, since no money is changing hands here, the app store is not making money on ads through these things. It's all just pulling in a website from a company. There's no reason that a company needs its permission. Twitter is Twitter. If Twitter wanted to deny a PWA on Windows 10, they would be effectively saying, you can't go to twitter.com on your web browser, which would be insane.
By putting progressive web apps right in the store and it's going to be there for users but without the discoverability problem of having to go to the website, log in, and then pin it to your start screen. It's a unique thing and it should be happening a lot more in the coming years.
What Is the State of Progressive Web Apps Right Now?
Many progressive web apps are already out there, including Google Maps. You can pin it to your start screen and have a PWA of Google Maps that uses your location and works just like the app itself.
Starbucks has a preview version. If you go to app.starbucks.com on your phone, you can see it there, log in, and pin that to your start screen. You also have Twitter, you have Instagram, you have Tinder, you have Uber, and you have Lyft. Even Pinterest has a PWA. All the major companies are embracing this, because, again, companies hate paying extra. They would rather just have a web developer, make a PWA website, and call it a day.
What Does the Future Hold?
I also expect a lot of banks to jump into this because maintaining a banking app is super expensive. There's a lot of security involved. There are many laws in effect that they need to be compliant with. That's one reason why Windows 10 always had an issue with banking apps. They're very expensive to maintain.
But, what is always maintained? A banking website. In fact, that is updated even before any iOS and Android apps. So, if a bank can maintain a PWA website, well that's a win-win for everybody, including them and their consumers.
Published at DZone with permission of Aditya Modi . See the original article here.
Opinions expressed by DZone contributors are their own.