Passer au contenu principal
Tutoriel

Transformez Votre PWA en Application Native avec Capacitor

Convert an existing Progressive Web App into a native Capacitor mobile app for iOS and Android. A practical guide to packaging your PWA with minimal code changes.

Martin Donadieu

Martin Donadieu

Spécialiste du Contenu

Transformez Votre PWA en Application Native avec Capacitor

Introduction

Vous avez déjà une application web progressive. Elle fonctionne dans les navigateurs, possède un manifest et utilise peut-être un service worker pour le support hors ligne. Si vous avez maintenant besoin de distribution dans les magasins d'applications, d'API de dispositif natif ou d'un meilleur canal d'abord, la migration vers une application Capacitor est généralement plus rapide que la refonte de votre front-end.

Le plus grand avantage est que vous conservez presque tout votre code web existant de code. Dans la plupart des cas, vous n'avez besoin que de :

  • construire des actifs web de production,
  • initialiser Capacitor avec les bonnes webDir,
  • ajouter des projets iOS et Android,
  • et brancher uniquement les plugins natifs là où cela est nécessaire.

Si votre application PWA a des routes propres et une logique de composant, cela peut prendre juste quelques heures.

Prérequis

Temps estimé2-5 heures, en fonction des fonctionnalités spécifiques au plateforme.

  • Node.js 18+ avec Bun
  • Votre source d'application PWA existante code (React, Vue, Angular, Svelte, etc.)
  • Xcode (pour iOS, macOS uniquement)
  • Android Studio pour Android
  • Si vous prévoyez de publier sur iOS, vous aurez besoin d'un compte développeur Apple.
  • Un compte développeur Google Play est nécessaire pour la distribution Android.

Étape 1 : Vérifiez votre PWA avant de l'entourer de natives.

Avant de lancer bunx cap init, vérifiez que votre application web est prête pour la production :

  1. Assurez-vous que votre PWA dispose d'un script de build de production (par exemple, bun run build).
  2. Vérifiez que votre dossier de sortie web est déterministe (souvent dist, build, ou out).
  3. Supprimez les redirigements absolus codés en dur qui supposent un contexte de navigateur uniquement.
  4. Vérifiez que le comportement du service worker est compatible avec les vues Web de mobile :
    • Conservez le support hors ligne si cela aide vos utilisateurs.
    • Évitez les API du navigateur uniquement qui ne sont pas disponibles dans la vue web intégrée.
  5. Confirmez les invites d'installation de PWA et les UX spécifiques au navigateur sont toujours pertinentes. Dans une application Capacitor, les invites d'installation sont généralement inutiles.

Étape 2 : Adapter les comportements du navigateur uniquement

Conservez votre interface utilisateur mais bloquez la logique du navigateur uniquement.

Utilisez une vérification de plateforme simple autour des invites d'installation et de push :

import { Capacitor } from '@capacitor/core'

const isNative = Capacitor.isNativePlatform()

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

Cela évite la logique du navigateur uniquement qui s'exécute à l'intérieur du conteneur natif.

Étape 3 : Initialiser Capacitor dans votre dossier PWA

À partir de votre dossier root PWA existant :

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

Exécutez Capacitor init avec votre nom d'application, votre ID de bundle et votre répertoire de sortie web :

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

Si votre dossier de build est build ou out remplacez dist.

Ajoutez une configuration de 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

Étape 4 : Ajoutez des plateformes natives

Installez les packages natifs de base et générez les dossiers de projet :

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

À ce stade, Capacitor a créé ios/ et android/ dossiers. La synchronisation copiera vos actifs web construits dans les deux plateformes.

Étape 5 : Construisez votre application web et synchronisez

Construirez la PWA et synchronisez les actifs web :

bun run build
bunx cap sync

Ouvrez maintenant les projets natifs :

bunx cap open ios
bunx cap open android

À partir de Xcode ou d'Android Studio, connectez un appareil ou un émulateur et exécutez.

Étape 6 : Améliorations natives après migration

C'est là que vous remplacez les fonctionnalités web uniquement par des APIs natives où cela est nécessaire :

  • Notifications push -> @capacitor/push-notifications
  • Stockage clé/valeur sécurisé -> @capacitor/preferences
  • Caméra / médias -> @capacitor/camera
  • Authentification biométrique -> @capacitor-community/native-biometric (ou plugin de votre choix)

Pour chaque nouveau plugin natif :

  1. Installez le package du plugin
  2. Configurez les paramètres spécifiques du plugin
  3. Exécutez :
bunx cap sync

Rebâtissez et exécutez à nouveau.

Étape 7 : Contrôles de parité de l'app store

Avant la soumission :

  • Testez les liens profonds et la navigation (/ et les routes profondes) sur les deux plateformes.
  • Vérifiez que la barre de statut, les zones de sécurité et l'orientation sont corrects.
  • Supprimez les métadonnées web non utilisées qui entrent en conflit avec le comportement de l'application (par exemple, les invites d'installation).
  • Conservez les paramètres de sécurité et de confidentialité de l'application cohérents avec votre politique.
  • Ajoutez les icônes et les assets de splash pour chaque plateforme.

Si votre application utilise les mises à jour OTA, associez votre pipeline de publication à une stratégie d'update native et considérez Capgo pour un lancement contrôlé et un rollback.

Vérification finale

  • Les builds de l'application web se déroulent proprement (bun run build)
  • Capacitor initialisé avec les bonnes webDir
  • bunx cap add ios et bunx cap add android terminé
  • Les applications natives fonctionnent sur des appareils réels
  • Les chemins de navigation uniquement en navigateur code sont bloqués pour le comportement natif
  • Les canaux d'actualisation et les actifs de magasin d'applications sont configurés

Vous avez déjà fait la plupart du travail dur lors de la création de votre PWA. L'ajout de Capacitor donne :

  • Distribution dans les magasins
  • Accès aux API natives
  • Une itération plus rapide sans une reécriture complète de code
  • Un seul chemin de déploiement pour les équipes web et mobile

Commencez par cette flux, puis itérez native-par-native en fonction des données d'analyse et des commentaires des utilisateurs

Continuez de Transformez votre PWA en application native avec Capacitor

Si vous utilisez Transformez votre PWA en application native avec Capacitor pour planifier la migration et les opérations d'entreprise, connectez-le avec Capgo Entreprise pour le flux de travail du produit dans Capgo Entreprise, Alternatives de plugin Ionic Entreprise pour le flux de travail du produit dans Alternatives de plugin Ionic Entreprise, Capgo Alternatives pour le flux de travail du produit dans Capgo Alternatives, Capgo Conseil pour le flux de travail du produit dans Capgo Conseil, et Capgo Support Premium pour le flux de travail du produit dans le support Premium Capgo.

Mises à jour en direct pour les applications Capacitor

Lorsqu'un bug de la couche web est en direct, expédiez la correction par le biais de Capgo au lieu d'attendre des jours pour l'approbation des magasins d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les modifications natives restent dans le chemin de revue normal.

Démarrer Maintenant

Dernières actualités de notre Blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile véritablement professionnelle.