이 게시물에서는 네이티브 앱과 같은 경험을 제공하는 웹 애플리케이션 구축에 대한 현대적인 접근 방식인 프로그레시브 웹 앱(PWA)을 살펴보겠습니다. PWA의 기본 사항과 장점, PWA를 처음부터 만드는 단계를 다루겠습니다.
프로그레시브 웹 앱(PWA)이란 무엇인가요?
프로그레시브 웹 앱은 HTML, CSS, JavaScript 등 일반적인 웹 기술을 사용하여 구축된 웹을 통해 제공되는 일종의 애플리케이션 소프트웨어입니다. PWA는 표준 호환 브라우저를 사용하는 모든 플랫폼에서 작동하도록 고안되었습니다.
PWA의 주요 기능:
PWA를 구축해야 하는 이유
전제 조건:
간단한 PWA 만들기:
프로젝트 설정:
mkdir my-pwa cd my-pwa npm init -y npm install express
프로젝트 구조:
my-pwa/ ├── public/ │ ├── index.html │ ├── styles.css │ └── app.js ├── server.js ├── package.json └── manifest.json
manifest.json:
매니페스트 파일은 PWA에 대한 메타데이터를 제공하며 홈 화면에 앱을 설치하는 데 필요합니다.
// manifest.json { "name": "My PWA", "short_name": "PWA", "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#007bff", "icons": [ { "src": "icon-192x192.png", "sizes": "192x192", "type": "image/png" }, { "src": "icon-512x512.png", "sizes": "512x512", "type": "image/png" } ] }
index.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>My PWA</title> <link rel="stylesheet" href="/styles.css"> <link rel="manifest" href="/manifest.json"> </head> <body> <h1>Welcome to My Progressive Web App!</h1> <script src="/app.js"></script> </body> </html>
styles.css:
/* styles.css */ body { font-family: Arial, sans-serif; text-align: center; background-color: #f0f0f0; color: #333; }
app.js:
// app.js if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js') .then(registration => { console.log('ServiceWorker registered: ', registration); }) .catch(error => { console.log('ServiceWorker registration failed: ', error); }); }); }
서비스 워커는 웹페이지와 별도로 브라우저가 백그라운드에서 실행하는 스크립트입니다. 네트워크 요청을 가로채고 리소스를 캐시하여 성능과 오프라인 기능을 향상시킬 수 있습니다.
service-worker.js:
// service-worker.js const CACHE_NAME = 'my-pwa-cache-v1'; const urlsToCache = [ '/', '/styles.css', '/app.js', '/manifest.json', '/icon-192x192.png', '/icon-512x512.png' ]; self.addEventListener('install', event => { event.waitUntil( caches.open(CACHE_NAME) .then(cache => { return cache.addAll(urlsToCache); }) ); }); self.addEventListener('fetch', event => { event.respondWith( caches.match(event.request) .then(response => { return response || fetch(event.request); }) ); });
server.js:
const express = require('express'); const path = require('path'); const app = express(); const PORT = process.env.PORT || 3000; app.use(express.static(path.join(__dirname, 'public'))); app.listen(PORT, () => { console.log(`Server is running on http://localhost:${PORT}`); });
서버 실행:
node server.js
앱 열기:
서비스 종사자 등록:
홈 화면에 추가:
모범 사례:
다루어진 핵심 사항 요약:
위 내용은 프로그레시브 웹 앱(PWA)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!