Vai alla navigazione principale
Tutorial

Trasforma la tua App PWA in un'app nativa con Capacitor

Converte un'app PWA esistente in un'app mobile nativa per iOS e Android con Capacitor minime modifiche. Una guida pratica per pacchetto la tua app PWA con modifiche code minime.

Martin Donadieu

Martin Donadieu

Content Marketer

Trasforma la tua App Web Progressiva in un'app nativa con Capacitor

Introduzione

Se già hai una App Web Progressiva. Funziona nei browser, ha un manifesto e forse utilizza un worker di servizio per il supporto offline. Se ora hai bisogno di distribuzione negli store, API di dispositivo nativo o un miglior percorso di onboarding, migrare a un'app Capacitor è spesso più veloce che ricreare il front-end.

Il vantaggio più grande è che conservi quasi tutto il tuo web code esistente. In molti casi, hai bisogno solo di:

  • costruire asset web di produzione
  • inizializzare Capacitor con le impostazioni giuste webDir,
  • aggiungere progetti iOS e Android
  • e collegare plugin nativi solo dove necessario

Se la tua PWA ha percorsi puliti e logica di componente, ciò può richiedere solo poche ore.

Requisiti preliminari

Tempo stimato: 2-5 ore, a seconda delle caratteristiche specifiche della piattaforma.

  • Node.js 18+ con Bun
  • Il tuo codice PWA esistente code (React, Vue, Angular, Svelte, ecc.)
  • Xcode (solo per iOS, macOS)
  • Android Studio (solo per Android)
  • Account di sviluppatore Apple se si prevede la pubblicazione di iOS
  • Account di sviluppatore Google Play per la distribuzione Android

Step 1: Controlla il tuo PWA prima di avvolgerlo in nativo

Prima di eseguire bunx cap init, verificare che il tuo app web sia pronto per la produzione:

  1. Assicurati che il tuo PWA abbia uno script di build di produzione (ad esempio bun run build).
  2. Conferma che il tuo cartella di output web sia deterministico (spesso dist, build, o out).
  3. Elimina i redirect assoluti hard-coded che assumono un contesto browser solo.
  4. Verifica che il comportamento del worker di servizio sia compatibile con i WebViews mobili:
    • Conserva il supporto offline se aiuta i tuoi utenti.
    • Evita gli API browser-only che non sono disponibili nel webview incorporato.
  5. Conferma che le richieste di installazione PWA e l'esperienza utente specifica del browser siano ancora pertinenti. In un'app Capacitor di solito non sono necessarie le richieste di installazione dell'app.

Step 2: Adatta i comportamenti web-only

Mantieni l'interfaccia utente dell'applicazione ma blocca la logica eseguibile solo in browser.

Utilizza un controllo di piattaforma semplice intorno alle istruzioni di installazione e promemoria:

import { Capacitor } from '@capacitor/core'

const isNative = Capacitor.isNativePlatform()

function registerInstallPrompt() {
  if (isNative) return
  // existing browser-only install or Web Push code
}

Ciò evita che la logica eseguibile solo in browser si attivi all'interno del contenitore nativo.

Passo 3: Inizializza Capacitor nella cartella del tuo PWA

Dalla radice del tuo PWA esistente:

bun add @capacitor/core
bun add -D @capacitor/cli

Esegui Capacitor init con il nome dell'applicazione, l'ID bundle e la directory di output web:

bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist

Se il tuo cartello di build è build (Create React App) o out (Next.js static export), sostituisci dist.

Aggiungi una configurazione di base 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

Passo 4: Aggiungi piattaforme native

Installa i pacchetti nativi di base e genera le cartelle del progetto:

bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android

In questo momento Capacitor ha creato ios/ e android/ cartelle. La sincronizzazione copierà i tuoi asset web costruiti in entrambe le piattaforme.

Passo 5: Costruisci il tuo'app web e sincronizza

Costruisci la PWA e sincronizza gli asset web:

bun run build
bunx cap sync

Ora apri i progetti nativi:

bunx cap open ios
bunx cap open android

Dal Xcode o Android Studio, collega un dispositivo o un emulatore e esegui.

Passo 6: Migrazione delle funzionalità native

Ecco dove sostituisci le funzionalità esclusivamente web con API native dove necessario:

  • Notifiche push -> @capacitor/push-notifications
  • Archiviazione chiave/valore sicura -> @capacitor/preferences
  • Camera / media -> @capacitor/camera
  • Autenticazione biometrica -> @capacitor-community/native-biometric o plugin di scelta

Per ogni nuovo plugin nativo:

  1. Installa il pacchetto del plugin
  2. Configura le impostazioni specifiche del plugin
  3. Esegui:
bunx cap sync

Riavvia e esegui nuovamente.

Passo 7: Verifica della parità con l'app store

Prima della sottoscrizione:

  • Testa i collegamenti profondi e la routing (/ e percorsi profondi) su entrambe le piattaforme.
  • Verifica che la barra dello stato, le aree sicure e l'orientamento siano corretti.
  • Elimina i metadati web non utilizzati che confliggono con il comportamento dell'app (ad esempio, le istruzioni di installazione).
  • Mantieni le impostazioni di sicurezza e privacy dell'app coerenti con la tua politica.
  • Aggiungi icone/splash per ogni piattaforma.

Se la tua app utilizza aggiornamenti OTA, sincronizza il tuo pipeline di rilascio con una strategia di aggiornamento sicura per i nativi e considera Capgo per un rollout controllato e rollback.

Checklist finale

  • Le build dell'app web si compilano correttamente (bun run build)
  • Capacitor inizializzato con il webDir
  • bunx cap add ios giusto bunx cap add android e
  • completato
  • Percorsi del browser solo sono bloccati per comportamento nativo code
  • I canali di aggiornamento e gli asset del negozio sono configurati

Hai già fatto la maggior parte del lavoro difficile quando hai costruito la tua PWA. Avvolgendo con Capacitor ti dà:

  • Distribuzione nel negozio
  • Accesso a API native
  • Iterazione più rapida senza una completa code ricompilazione
  • Un unico percorso di distribuzione per team web e mobili

Inizia da questo flusso, poi iterare native-by-native in base alle analisi e ai feedback degli utenti

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug del layer web è attivo, invia la correzione attraverso Capgo invece di attendere giorni per l'approvazione della store.

Inizia subito

Ultimi articoli del nostro Blog

Capgo ti fornisce le migliori informazioni che ti servono per creare un'app mobile veramente professionale.