Page d accueil de Capacitor : le runtime natif open source pour applications web, iOS et Android
|

CAPACITOR : votre app web devient une application native iOS et Android

⏱️ Temps de lecture estimé : 4 minutes

https://capacitorjs.com/

📌 CAPACITOR est un runtime natif open source, sous licence MIT, qui fait tourner une application web — React, Vue, Svelte, Angular ou du HTML/CSS simple — sur iOS, Android et en PWA, avec 38 plugins officiels pour ouvrir les API du téléphone.

L’intérêt n’est pas abstrait : si vous avez déjà un projet web qui tourne, Capacitor s’y greffe sans le réécrire. Trois étapes. npm i @capacitor/core puis npm i -D @capacitor/cli, npx cap init vous pose trois questions (nom de l’app, identifiant de package, dossier de build web), et ensuite npx cap add ios et npx cap add android déposent un projet Xcode et un projet Gradle dans le dépôt. npx cap sync copie votre bundle web compilé dans les deux projets natifs et met les dépendances à jour. Ensuite npx cap run ios, npx cap open android pour ouvrir l’IDE natif, npx cap build android pour produire un AAB, un APK ou une IPA. Une seule contrainte de structure : un package.json, un dossier de build, et un index.html avec un — sans ce dernier, les plugins ne font rien.

La couche qui compte au quotidien, ce sont les plugins. 38 plugins officiels sont documentés : caméra, géolocalisation, notifications locales et push, système de fichiers, partage, Presse-papiers, haptique, barre d’état, lecteur d’écran, scan de codes-barres. Le plus simple se consomme en TypeScript, avec la même signature sur les deux plateformes. Quand l’API manque, vous écrivez la vôtre en Swift ou en Kotlin, Capacitor génère la couche JavaScript, et le plugin devient un paquet npm. Vous n’êtes jamais coincé.

Un détail d’architecture que je trouve important : la WebView sert les fichiers depuis l’appareil, pas depuis un serveur distant. Le schéma par défaut est capacitor://localhost sur iOS et https://localhost sur Android, et toute URL externe s’ouvre dans le navigateur du système, pas dans la WebView. Sur cette base, @capacitor/background-runner exécute du JavaScript hors de la WebView, avec les Background Modes iOS, et @capacitor/local-llm — expérimental, sans support, CapacitorLABS — fait tourner un modèle sur l’appareil via Apple Intelligence ou Gemini Nano, sans requête réseau ni clé API.

  • 🛠 Node 22 ou plus requis, et 38 plugins officiels documentés
  • 🍎 iOS impose un macOS avec Xcode 26 minimum ; Android Studio 2025.2.1 et un SDK API 24 suffisent côté Android
  • 📦 Swift Package Manager par défaut depuis la v8, CocoaPods encore disponible via --packagemanager CocoaPods
  • 🔌 Deux points de vigilance : la WebView reste une WebView, et un build iOS demande un Mac

Les chiffres vérifiables : @capacitor/core est en 8.5.2, la 9.0.0-alpha.7 est en next, le dépôt est en TypeScript avec environ 16 700 étoiles. Ionic, maison mère depuis le rachat par OutSystems en octobre 2022, a arrêté les ventes de ses produits commerciaux en février 2025 — Appflow reste accessible jusqu’au 31 décembre 2027 — mais Capacitor et Ionic Framework restent gratuits et MIT. Le lien de parenté avec Cordova est explicite : la rétrocompatibilité avec la grande majorité des plugins Cordova est assumée, et la différence de fond tient en une ligne — les projets natifs sont des artefacts source, versionnés dans Git, pas des artefacts de build.

Mon avis : c’est le meilleur compromis qui existe pour qui vit en web et veut sortir sur les deux stores sans apprendre Swift et Kotlin. Le CLI tient en une dizaine de commandes, et le moment où une fonctionnalité exotique apparaît, on ouvre Xcode et on écrit du natif plutôt que de bricoler. Ce que j’emporte comme réserve : la WebView reste une WebView, donc ni jeu 3D ni interface entièrement native, et sans Mac vous êtes bloqué côté iOS.

Sources

Publications similaires

Laisser un commentaire