Le meilleur live update est celui que vos utilisateurs remarquent à peine.
Cela signifie généralement trois choses :
- Le téléchargement est léger.
- Le déploiement est contrôlé.
- La récupération est instantanée en cas de problème.
Le même conseil de « garder les mises à jour OTA légères » qui s'applique à React Native fonctionne aussi avec Capgo. La différence est que Capgo offre Capacitor aux équipes quelques leviers supplémentaires : Mises à jour delta, canaux, rollbacks automatiques, ciblage de version, et optionnel chiffrement de bout en bout.
En les utilisant ensemble, vous obtenez des payloads plus légers, des installations plus rapides et beaucoup moins de complexité opérationnelle.
La légèreté compte même si les MAU restent stables
Un détail utile spécifique à Capgo : le nombre de Capgo correspond concrètement au nombre d'appareils actifs mensuels ayant contacté le service de mise à jour au cours des 30 derniers jours.
Réduire la taille d'un bundle n'est donc pas seulement une astuce pour limiter le calcul des MAU. C'est important car cela améliore ce que les utilisateurs et les équipes ressentent réellement :
- Téléchargements plus rapides en 4G/5G ou Wi-Fi faible
- Une meilleure expérience avec les mises à jour directes
- Moins de bande passante gaspillée lors de releases échouées ou de rollback
- Un périmètre d'impact réduit lors des tests ou du staging d'une release
Les mises à jour légères reposent avant tout sur la rapidité, la sécurité et la discipline opérationnelle.
1. Privilégiez les mises à jour Delta
If you do only one thing, do this.
Les Capgo Mises à jour delta Envoyez uniquement les fichiers modifiés entre deux versions au lieu de re-télécharger tout le bundle web. C'est le gain le plus important pour la performance de vos mises à jour OTA.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
Une fois votre passage QA terminé :
bunx @capgo/cli@latest bundle upload --channel production --delta
Si vous voulez maintenir une CI stricte, utilisez --delta-only pour éviter que personne ne revienne par erreur aux uploads de bundles complets :
bunx @capgo/cli@latest bundle upload --channel production --delta-only
Only use --delta-only lorsque votre parc de production supporte les Delta updates. Avec des versions de plugins mixtes, les appareils plus anciens ne supportant pas la livraison delta via manifest ne pourront pas télécharger cette mise à jour.
C'est encore plus crucial si vous utilisez directUpdate, car le délai entre la « mise à jour trouvée » et le « rechargement de l'app » devient visible pour l'utilisateur.
2. Traitez les assets comme des assets, pas comme du JavaScript superflu
Large assets are where OTA bundles quietly get bloated.
Quelques règles pratiques :
- N'intégrez pas de grosses images ou médias directement dans le JavaScript quand un simple fichier asset suffit.
- Gardez le contenu qui change fréquemment sur votre propre CDN ou API s'il n'a pas besoin de figurer dans le bundle de l'app livrée.
- Attention aux images marketing, aux vidéos d'onboarding et aux assets de campagne ponctuels qui sont remplacés à chaque release.
- Gardez vos assets stables. Avec les mises à jour Delta, les fichiers inchangés sont réutilisés au lieu d'être téléchargés à nouveau.
C'est l'un des moyens les plus simples de garder Capgo rapide à mesure que votre app grandit. Le pire scénario est une petite correction UI qui force les utilisateurs à télécharger une pile de médias sans rapport.
3. Réservez les releases natives aux changements natifs réels
Capgo met à jour la couche web : HTML, CSS, JavaScript et les assets chargés au runtime.
Ce n'est pas le bon canal pour :
- les nouveaux plugins natifs,
- les changements de permissions,
capacitor.config.tsles changements,- tout ce qui modifie l'état du projet natif iOS ou Android.
Cette distinction est cruciale pour la performance. Si vous continuez à injecter des changements structurels majeurs dans le flux OTA, votre stratégie de mise à jour deviendra plus lourde et risquée avec le temps.
Utilisez délibérément deux canaux de release :
Canal natif
Pour les modifications de plugins, de permissions ou de configuration native :
bun run build
bunx cap sync
Puis publiez une release normale sur les stores.
canal Capgo
Pour itérer en toute sécurité sur la couche web :
bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta
Rafraîchissez aussi régulièrement votre baseline native si vous avez récemment ajouté beaucoup d'assets de longue durée. Un nouveau build sur les stores intègre cette nouvelle baseline, ce qui réduit la taille des futurs diffs Capgo.
4. Utilisez les canaux pour limiter la taille du déploiement
Une mise à jour « légère » ne se résume pas aux mégaoctets. C'est aussi le nombre d'appareils qui reçoivent la mise à jour avant que vous ne confirmiez sa stabilité.
Les Capgo système de canaux sont le moyen le plus propre de contrôler cela :
stagingpour la QAbetapour les testeurs invitésproductionpour tout le mondehotfixpour la récupération d'urgence
Un flux simple ressemble à ceci :
- Envoyer vers
staging. - Valider sur des appareils réels.
- Déployez progressivement, via des canaux contrôlés ou un déploiement progressif par pourcentage.
- Faites un rollback immédiat si la santé de l'app chute.
Si votre app possède plusieurs baselines natives en circulation, associez les canaux à ciblage de version. Cela évite aux anciens binaires de recevoir des bundles incompatibles ou trop lourds.
Pour les équipes souhaitant des cycles de revue encore plus serrés, Capgo fonctionne aussi très bien pour les previews de PRCela permet aux équipes produit, QA et aux parties prenantes de tester les changements JS sans attendre de nouveaux builds TestFlight ou Play internal.
5. Si vous activez les mises à jour directes, optimisez le démarrage à fond
Plus vous voulez qu'une mise à jour soit appliquée rapidement, plus votre processus de démarrage doit être discipliné.
Les Capgo comportement de mise à jour docs explicitly recommend pairing directUpdate avec les mises à jour Delta. C'est le réglage par défaut idéal.
Le second garde-fou est notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Si votre application ne signale pas qu'elle est prête dans le délai par défaut de 10 secondes notifyAppReady() ou dans la fenêtre que appReadyTimeout vous avez définie dans votre config Capacitor, Capgo peut marquer ce bundle comme invalide et restaurer la version précédente fonctionnelle. Ce comportement de rollback est indispensable en production, mais cela signifie aussi que vous devez garder un démarrage propre :
- Appelez
notifyAppReady()au bon endroit - Évitez les opérations lentes au démarrage dans le chemin critique
- Sauvegardez et restaurez soigneusement l'état de l'app si vous rechargez immédiatement
- Test bad-network and low-end-device scenarios before broad rollout
Si vous ne l'avez pas relu récemment, le guide notifyAppReady vaut la peine d'être relu.
6. Utilisez des canaux de mise à jour internes plutôt que des rebuilds natifs inutiles
Beaucoup d'équipes mobiles perdent du temps à compiler des binaires pour des changements purement web.
Si le changement concerne :
- le texte,
- les retouches UI,
- le flux d'onboarding,
- la logique de l'écran de pricing,
- le paramétrage de l'analytics,
- les feature flags,
- le rendu d'un prompt ou d'une réponse API,
puis une mise à jour Capgo est souvent l'artefact de revue le plus rapide.
Cela signifie moins de rebuilds natifs, moins de changements sur TestFlight et une boucle de feedback plus serrée pour l'équipe. C'est l'un des avantages les moins exploités de Capgo : vous pouvez transférer davantage de travail de revue et de QA vers le canal OTA sans briser la frontière natif/web.
Notre guide sur le staging avec un seul ID d'app mobile propose une méthode pratique pour garder cela propre sur le long terme.
7. Séparer le lean du secret
Les bundles légers et les bundles sécurisés répondent à des problématiques différentes.
Les canaux contrôlent l'éligibilité. Ils ne garantissent pas la confidentialité d'un bundle par eux-mêmes.
Si vous avez besoin de garanties de livraison plus fortes :
- activez le chiffrement Live Update,
- utiliser un stockage personnalisé ou une livraison auto-hébergée,
- ne conservez les clés privées que dans la CI ou les workflows d'opérateurs sécurisés.
Cela ne rend pas la taille des mises à jour moins importante. Cela signifie simplement que vous devez optimiser ces deux dimensions :
- la légèreté pour la vitesse,
- chiffré pour le contrôle de la diffusion,
- les canaux pour le contrôle du déploiement,
- le rollback pour la récupération.
Un workflow pratique de type « lean Capgo »
Si vous voulez un modèl’opérationnel simple par défaut, utilisez ceci :
- Gardez les canaux de release natifs et OTA séparés.
- Envoyez les changements JS avec
--deltapar défaut. - Utilisez
stagingetbetacanaux avantproduction. - Regarder stats et logs de mise à jour après le déploiement, pas seulement avant.
- Transformez les PR en previews installables quand un build natif n'est pas nécessaire.
- Évitez d'inclure les médias volumineux et changeants dans le bundle quand c'est possible.
- Rafraîchissez la base native après une forte croissance des assets ou des changements natifs.
- Considérez
notifyAppReady()and rollback behavior as part of release engineering, not setup trivia.
Cette combinaison reste rapide bien plus longtemps que l'approche habituelle « on upload tout ce qui a changé ».
Pour conclure
Pour les équipes Capgo, être « léger et rapide » n'est pas qu'une question de taille de bundle.
C'est un problème de conception de release.
Use Delta updates for payload size, channels for rollout size, and rollbacks for failure size. Once you think about OTA that way, your updates stay quick even as the app, team, and user base get bigger.
Continuer avec Comment garder les mises à jour Capgo légères et rapides
Si vous utilisez Comment garder les mises à jour Capgo légères et rapides pour planifier le routage des canaux et le déploiement progressif, connectez-l’à Canaux pour les détails d'implémentation des canaux, Canaux pour les détails d'implémentation des canaux, Canaux pour les détails d'implémentation des canaux, Solution de test bêta pour le workflow produit de la solution de test bêta, et Solution de ciblage de version pour le workflow produit de la solution de ciblage de version.