From the course: Angular: Progressive Web Apps

What is a progressive web app? - Angular Tutorial

From the course: Angular: Progressive Web Apps

What is a progressive web app?

- [Narrator] What is a progressive web app? A PWA, or a progressive web app, is just an application built using web technologies that can be installed in user's devices, and it can work offline and without the limits of the browser's UI. So it's just a website. It's a website that can be installed and it can work offline. First, you need to understand that a PWA, a progressive web app, is an open definition. So actually it's not completely clear what it is. Or we can be more or less PWA compared with other websites. So we're going to learn how PWA are we based on the technologies and the abilities that we are using in our project. The name was embraced originally by Google and then followed by Microsoft, Mozilla, Samsung, and other companies. The only company that is not using the term as of today is Apple. That doesn't mean that Apple is not supporting the technologies behind PWAs, but they're using just the term "web app." So when Apple says web app, they are talking about PWAs, or progressive web apps. And a PWA is built on top of many W3C specs. So these are the specs defining different standards on HTML, CSS, JavaScript, JSON, and other formats. And a PWA can have different kinds of distribution. We can distribute, we can publish our app through the browser or also through app stores. And we can use all the web capabilities available today under the browser umbrella. So a PWA can use any API So a PWA can use any API that is today available on most browsers, including capability APIs, such as Bluetooth or NFC, and performance APIs such as WebAssembly. The idea is to bring different abilities from the web and also from the native world. For example, from the web, we will have the ability of using links and to discover content from search engines and to discover content from search engines and social networks. Also, we are going to use standards. That means HTML, CSS, JavaScript, SVG, That means HTML, CSS, JavaScript, SVG, and everything we know from the web to create apps. We can use any library or framework, For example, Angular, to create apps without learning a new language or a new platform. Deploying the app is just as simple as deploying a website. We just put some files on a web server and we have an app. Compared with the native world where you need to get an app store business account, pay for it, sign a package, upload the package, and wait for the app store to approve our app. A website is much simpler. You just deploy files. And also that means that it's simple to update the app, because if you need to update the app, you just need to deploy again your files on a web server. So a PWA will get all these abilities from the web. But it's not just that. We want more. We also want to borrow some ideas and some abilities from native apps. For example, the ability to work offline. So if we don't have connection, we can use the app anyway. Also, the ability to have an installed icon in the operating system like any other app, and that icon can open a standalone window that is completely separated from the browser. So that means from a user's perspective, it's just an app. Also from native, we want high performance. So we don't want to wait for the page to load. So we want a really fast application that when we click on it, it's there. And finally, we want platform access. We want access sensors, hardware, and the operating system. For example, we may want push notifications. A lot of abilities and capabilities that were originally only available for native apps. But now a progressive web app will take abilities from both worlds, from the web and from native. And a PWA is ideal for all those apps out there. They're just consuming web content or web services. They're not doing a lot of stuff in the background. They're just rendering content that are downloading from a web server. So that's the idea of a PWA. It's just a web app built using web technologies with some abilities on top of it.

Contents