Home>Article>Web Front-end> Progressive Web apps: The future of web development
Imagine this: You're on the subway, you try to access a website on your cell phone, but the internet signal keeps dropping. Frustrating, right?
This is where Progressive Web App comes in, the superhero of the web world. It works offline, loads at lightning speed, and even sends notifications. It's like giving your website superpowers!
Let's go back in time (like, in 2015), the options were: build a website or build an app. That was like choosing between a bike or a car. Then some smart people at Google thought, "Why not both?" and thus, PWA was born!
Let's roll up our sleeves and build a simple PWA together.
Let's create a "Bad Jokes" app because, well, who doesn't like a bad joke?
First, let's create some basic HTML. This is our "bike" - it works, but it's not super powerful yet.
Dad Jokes PWA Dad Jokes
Click the button for a dad joke!
Let's add a touch of CSS to make our application more elegant:
body { font-family: Arial, sans-serif; text-align: center; padding: 20px; } #joke { margin: 20px 0; font-style: italic; } button { padding: 10px 20px; font-size: 16px; cursor: pointer; }
Now, let's add a little JavaScript to make a request to an API that will return the jokes:
const jokeElement = document.getElementById('joke'); const jokeBtn = document.getElementById('jokeBtn'); async function fetchJoke() { try { const response = await fetch('https://icanhazdadjoke.com/', { headers: { 'Accept': 'application/json' } }); const data = await response.json(); jokeElement.textContent = data.joke; } catch (error) { jokeElement.textContent = "Oops! Looks like the joke got stuck in dad's old briefcase."; } } jokeBtn.addEventListener('click', fetchJoke); // Faz o request na API quando a página carrega fetchJoke();
Now, let's transform our normal website into a PWA. First, we need a manifest file. Create a file called manifest.json:
{ "name": "Dad Jokes PWA", "short_name": "DadJokes", "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#4285f4", "icons": [ { "src": "icon.png", "sizes": "192x192", "type": "image/png" } ] }
Don't forget to add the manifest link in the HTML file
Service workers are like little invisible butlers of the web. They cache your assets and even work offline. Create a file called service-worker.js:
const CACHE_NAME = 'dad-jokes-cache-v1'; const urlsToCache = [ '/', '/index.html', '/style.css', '/app.js', '/icon.png' ]; self.addEventListener('install', event => { event.waitUntil( caches.open(CACHE_NAME) .then(cache => cache.addAll(urlsToCache)) ); }); self.addEventListener('fetch', event => { event.respondWith( caches.match(event.request) .then(response => response || fetch(event.request)) ); });
Now, register the service worker in your app.js file
if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js') .then(registration => console.log('ServiceWorker registered')) .catch(error => console.log('ServiceWorker registration failed:', error)); }); }
Congratulations! You've just built your first PWA. It's like watching your child take their first steps, isn't it? (Speaking of bad jokes...)
As we move towards 2024, PWAs are becoming more powerful. They can access device features, work offline, and provide an app-like experience without the hassle of app stores.
So, the next time someone asks you if they can create a website or an app, you can say: “Why not both?” and introduce them to the wonderful world of PWAs!
Progressive Web Apps: The Future of Web Development, originally written by Baransel
Thank you for reading this article. I hope I can provide you with some useful information. If so, I would be very happy if you would recommend this post and click the ♥ button so more people can see this.
The above is the detailed content of Progressive Web apps: The future of web development. For more information, please follow other related articles on the PHP Chinese website!