イントロダクション
すでにプログレッシブ ウェブ アプリを持っています。ブラウザで動作し、manifestがあり、オフラインのサポートのためにサービス ワーカーを使用しているかもしれません。アプリ ストアの配布、ネイティブ デバイス API、またはより良いオンボーディング フィードバックが必要になった場合、Capacitor アプリに移行することは、フロントエンドを再構築するよりも速い場合が多い。
最大の利点は、ほとんどの既存のウェブ code を保持できることです。ほとんどの場合、次のだけが必要です。
- プロダクション ウェブ アセットをビルドする
- Capacitor を正しく初期化する
webDir, - iOS と Android のプロジェクトを追加する
- 必要な場合にのみネイティブ プラグインを接続する
PWA がクリーンなルートとコンポーネント ロジックを持っている場合、数時間で済みます。
前提条件
予想時間: 2-5 時間、プラットフォーム固有の機能に依存します。
- Node.js 18歳以上 Bun
- codeの既存のPWAソース (React, Vue, Angular, Svelteなど)
- Xcode (iOS、macOSのみ)
- Android Studio (Android用)
- iOSの場合、Apple Developerアカウントが必要
- Androidの場合、Google Play Developerアカウントが必要
ステップ1: PWAをネイティブにラップする前に、確認してください
実行する前に、Webアプリがプロダクション用に準備されていることを確認してください bunx cap init, verify your web app is production-ready:
- プロダクション用のPWAビルドスクリプトを確実に用意してください (例えば、
bun run build). - 確認してください:Web出力フォルダは決定論的であることが多いのですが (
dist,build, またはout). - ブラウザのみのコンテキストを前提とする絶対的なリダイレクトをハードコードしないでください。
- モバイルWebViewsのサービスワーカー動作と互換性があることを確認してください:
- オフラインサポートを維持することでユーザーに役立つ場合があります。
- ブラウザのみのAPIを避けます。Embedded WebViewでは利用できないAPIです。
- Confirm PWA install prompts and browser-specific UX still make sense. In a Capacitor app, app install prompts are usually not needed.
ステップ2:Webのみの動作を適応させる
アプリのUIを維持しながらブラウザのみのロジックをゲートします。
インストールとプッシュポップアップの場合に、単純なプラットフォームチェックを使用します:
import { Capacitor } from '@capacitor/core'
const isNative = Capacitor.isNativePlatform()
function registerInstallPrompt() {
if (isNative) return
// existing browser-only install or Web Push code
}
これにより、ネイティブコンテナ内でブラウザのみのロジックが実行されるのを防ぎます。
Step 3: Capacitor を PWA フォルダに初期化する
既存の PWA ルートから:
bun add @capacitor/core
bun add -D @capacitor/cli
Capacitor init を実行してアプリ名、バンドル ID、Web 出力ディレクトリを指定します。
bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist
ビルド フォルダが build (Create React App) または out (Next.js 静的エクスポート) の場合、 dist.
Capacitor の基本設定を追加します。
import type { CapacitorConfig } from '@capacitor/cli'
const config: CapacitorConfig = {
appId: 'com.example.my-pwa-app',
appName: 'MyPWAApp',
webDir: 'dist',
server: {
iosScheme: 'https',
},
}
export default config
Step 4: ネイティブ プラットフォームを追加する
コア ネイティブ パッケージをインストールしてプロジェクト フォルダを生成します。
bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android
この時点で、Capacitor は ios/ 、 android/ フォルダを作成しました。 同期は、両方のプラットフォームにビルド済みの Web アセットをコピーします。
ステップ 5: Web アプリをビルドし、同期
PWA と Web アセットを同期する:
bun run build
bunx cap sync
ここで、Xcode または Android Studio を開きます:
bunx cap open ios
bunx cap open android
デバイスまたはエミュレータに接続し、実行してください。
ステップ 6: マイグレーション後のネイティブの強化
ここで、必要な場合にのみ、ネイティブ API で Web のみの機能を置き換えます:
- プッシュ通知 ->
@capacitor/push-notifications - セキュアなキーバリューストレージ ->
@capacitor/preferences - カメラ / メディア ->
@capacitor/camera - バイオメトリック認証 ->
@capacitor-community/native-biometric(または選択したプラグイン)
各新しいネイティブ プラグインごとに:
- プラグインパッケージをインストールする
- プラグイン固有の設定を構成する
- Run:
bunx cap sync
次に再構築して再実行する。
ステップ7: アプリストアのパリティチェック
提出前に:
- 両方のプラットフォームでテストすること。
/ステータスバー、セーフエリア、およびオリエンテーションが正しいことを確認する。 - 未使用のWebのみのメタデータを削除する (例: インストールプロンプト)。
- アプリのトランスポートセキュリティとプライバシー設定を、ポリシーと一致させる。
- 各プラットフォーム用にアプリアイコン/スプラッシュアセットを追加する。
- __CAPGO_KEEP_0__
アプリがOTA更新を使用している場合、リリースパイプラインをネイティブセーフの更新戦略と組み合わせて、制御されたロールアウトとロールバックを考慮してください。 Capgo 最終チェックリスト
Webアプリが綺麗にビルドされます (
- __CAPGO_KEEP_0__が正しく初期化され、
bun run build) - Capacitor initialized with the right
webDir bunx cap add ios完了bunx cap add androidネイティブアプリは実機で動作します- ブラウザのみの__CAPGO_KEEP_0__パスはネイティブ動作をゲートします
- Browser-only code paths are gated for native behavior
- あなたはPWAを構築する際にすでに大部分の難しい作業を行いました。__CAPGO_KEEP_0__にラップすることで、次のことが得られます:
Webアプリが綺麗にビルドされます (Capacitorが正しく初期化され、と完成
- 配布チャネルへのアクセス
- ネイティブAPIへのアクセス
- フルcodeリライトなしでの開発スピードの向上
- ウェブとモバイルチームのための単一のデプロイパス
このフローから始め、分析とユーザーフィードバックに基づいてネイティブに一つずつ開発を進めます
Transform Your PWAをCapacitorでネイティブアプリに変換
__CAPGO_KEEP_0__を使用している場合 Transform Your PWAをCapacitorでネイティブアプリに変換 企業運用とマイグレーションの計画に使用する場合、__CAPGO_KEEP_0__ Enterpriseと接続してください Capgo Enterpriseの製品ワークフロー Ionic Enterprise Pluginの代替品の検討を含むCapgo Enterpriseの製品ワークフローを検討する場合 __CAPGO_KEEP_0__ Enterpriseの製品ワークフローを検討する場合 Ionic Enterprise プラグイン代替 Capgo 代替 for the product workflow in Capgo Alternatives, Capgo コンサルティング 製品ワークフローは Capgo コンサルティング Capgo プレミアムサポート 製品ワークフローは Capgo プレミアムサポート