目次
- はじめに
- インストールと環境準備
- PWA対応デザインの考慮点
- サービスワーカーの設定
- Web App マニフェストの設定
- ロゴ画像とスプラッシュ画面の設定
- LighthouseでPWA評価
- まとめ
1. はじめに
この記事では、Next.jsを利用したプログレッシブウェブアプリ(PWA)開発の基本的な手順やポイントを解説します。 PWAは、速度やオフライン対応が可能であり、デスクトップ、モバイル対応を実現し、高いユーザーエクスペリエンスを提供します。
2. インストールと環境準備
まずは、Next.jsと必要なパッケージをインストールします。
$ npx create-next-app your-app-name $ cd your-app-name $ npm install next-pwa
3. PWA対応デザインの考慮点
- レスポンシブデザイン: デバイスに応じた適切なレイアウトやサイズを提供
- タッチ操作: スワイプやピンチ操作に対応
- オフライン対応: ネットワークが不安定な場合でもコンテンツを表示
4. サービスワーカーの設定
next.config.js
にnext-pwaプラグインを追加します。
const withPWA = require('next-pwa') module.exports = withPWA({ pwa: { dest: 'public', }, })
5. Web App マニフェストの設定
public/manifest.json
ファイルを作成し、基本設定を行います。
{ "name": "Your App Name", "short_name": "App", "description": "A description of your app", "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#000000", "icons": [ { "src": "/icon-192x192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/icon-512x512.png", "sizes": "512x512", "type": "image/png" } ] }
_app.js
にマニフェストへのリンクを追加します。
import Head from 'next/head' function MyApp({ Component, pageProps }) { return ( <> <Head> <link rel="manifest" href="/manifest.json" /> </Head> <Component {...pageProps} /> </> ) } export default MyApp
6. ロゴ画像とスプラッシュ画面の設定
public/icon-192x192.png
と public/icon-512x512.png
を用意し、マニフェストで設定したサイズに合わせます。
7. LighthouseでPWA評価
Google ChromeのLighthouse機能を使って、PWAとしての評価を行います。結果や改善点を確認し、対応を行いましょう。
8. まとめ
この記事では、Next.jsを使ったPWA開発の基本的な手順を紹介しました。これらの手順を踏まえて、優れたPWAを作成してください。