プログレッシブ Web アプリ (PWA)

WBOY
リリース: 2024-08-08 08:26:11
オリジナル
1175 人が閲覧しました

Progressive Web Apps (PWAs)

プログレッシブ Web アプリ (PWA) の構築

この投稿では、ネイティブ アプリのようなエクスペリエンスを提供する Web アプリケーションを構築する最新のアプローチであるプログレッシブ Web アプリ (PWA) について説明します。 PWA の基本、その利点、および PWA を最初から作成する手順について説明します。

1. プログレッシブ Web アプリ (PWA) の概要

プログレッシブ Web アプリ (PWA) とは何ですか?

プログレッシブ Web アプリは、Web を通じて配信されるアプリケーション ソフトウェアの一種で、HTML、CSS、JavaScript などの一般的な Web テクノロジーを使用して構築されます。 PWA は、標準に準拠したブラウザを使用するあらゆるプラットフォームで動作することを目的としています。

PWA の主な機能:

  • レスポンシブ: あらゆるデバイスと画面サイズで動作します。
  • オフライン機能: Service Worker を使用して、オフラインまたはネットワーク状態が悪い場合に機能します。
  • アプリのようなエクスペリエンス: ホーム画面のインストールなどの機能を備えたアプリのようなユーザー エクスペリエンスを提供します。
  • 安全: スヌーピングを防止し、コンテンツの整合性を確保するために HTTPS 経由で提供されます。
  • 再エンゲージメント可能: プッシュ通知を有効にしてユーザーのエンゲージメントを維持します。

2. PWAのメリット

PWA を構築する理由

  • パフォーマンスの向上: 読み込み時間が短縮され、操作がよりスムーズになりました。
  • ユーザーエンゲージメントの強化: プッシュ通知とホーム画面へのアクセス。
  • 開発コストの削減: Web とモバイルの両方のエクスペリエンスを単一のコードベースで実現します。
  • SEO の利点: PWA は検索エンジンで見つけられます。

3. PWA のセットアップ

前提条件:

  • HTML、CSS、JavaScript の基本的な知識
  • Node.js と npm/yarn がインストールされています。

シンプルな PWA の作成:

  1. プロジェクトのセットアップ:

    mkdir my-pwa
    cd my-pwa
    npm init -y
    npm install express
    
    ログイン後にコピー
  2. プロジェクト構造:

    my-pwa/
    ├── public/
    │   ├── index.html
    │   ├── styles.css
    │   └── app.js
    ├── server.js
    ├── package.json
    └── manifest.json
    
    ログイン後にコピー

4. マニフェストファイルの作成

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"
    }
  ]
}
ログイン後にコピー

5. HTML、CSS、および JavaScript ファイルの作成

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);
      });
  });
}
ログイン後にコピー

6. Service Worker のセットアップ

Service Worker は、ブラウザが Web ページとは別にバックグラウンドで実行するスクリプトです。ネットワーク リクエストをインターセプトし、リソースをキャッシュしてパフォーマンスとオフライン機能を向上させることができます。

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);
      })
  );
});
ログイン後にコピー

7. サーバーのセットアップ

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
ログイン後にコピー

8. PWA のテスト

  1. アプリを開きます:

    • ブラウザで http://localhost:3000 に移動します。
  2. Service Worker 登録:

    • 開発者ツールを開きます (F12 キーを押すか、右クリックして [検査] を選択します)。
    • 「アプリケーション」タブに移動します。
    • 「Service Workers」の下に、登録されている Service Worker が表示されます。
  3. ホーム画面に追加:

    • モバイル デバイスでは、ブラウザで PWA を開きます。
    • 「ホーム画面に追加」というプロンプトが表示されます。

9. PWA のベスト プラクティス

ベストプラクティス:

  • HTTPS を使用する: PWA には安全なコンテキストが必要です。
  • 画像の最適化: 応答性の高い画像と遅延読み込みを使用します。
  • ネットワークリクエストを最小限に抑える: リソースを効果的にキャッシュします。
  • オフライン機能の確保: 有意義なオフライン体験を提供します。

10. 結論

ここで取り上げた重要なポイントを要約します:

  • PWA とその利点の紹介。
  • マニフェスト、Service Worker、キャッシュを使用した単純な PWA のセットアップ。
  • 堅牢な PWA を構築するためのベスト プラクティス。

11. 追加リソース

  • PWA ドキュメント
  • 高度な PWA トピックに関するチュートリアルとガイド。
  • コミュニティ フォーラムとサポート。

以上がプログレッシブ Web アプリ (PWA)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート