La meilleure live update est celle que vos utilisateurs remarquent à peine.
Cela signifie généralement trois choses :
- Le téléchargement est léger.
- Le déploiement progressif est maîtrisé.
- La récupération est instantanée en cas de problème.
Les mêmes conseils pour « garder l’OTA léger » qui fonctionnent dans l’écosystème React Native s’appliquent aussi à Capgo. La différence, c’est que Capgo offre aux équipes Capacitor quelques leviers supplémentaires : Mises à jour delta, canaux, rollbacks automatiques, ciblage de version, et facultatif chiffrement de bout en bout.
Utilisés ensemble, ils permettent d’obtenir des payloads plus légers, des installations plus rapides et beaucoup moins de désordre opérationnel.
La légèreté compte, même si les MAU restent stables
Un détail utile spécifique à Capgo : Capgo MAU correspond en réalité au nombre d’appareils actifs mensuels ayant contacté le service de mise à jour au cours des 30 derniers jours.
Alléger un bundle n’est donc pas principalement une astuce pour réduire le comptage des MAU. C’est important car cela améliore les aspects que les utilisateurs et les équipes ressentent réellement :
- Téléchargements plus rapides en 4G ou sur un Wi-Fi faible
- Meilleure expérience avec mises à jour directes
- Moins de bande passante gaspillée sur les releases échouées ou en rollback
- Moindre impact en cas de test ou de staging d’une release
Lean updates are really about speed, safety, and operational discipline.
1. Privilégier les mises à jour Delta
If you do only one thing, do this.
de Capgo Mises à jour delta n'envoyez que les fichiers modifiés entre deux versions au lieu de retélécharger l'intégralité du bundle web. C'est le gain de performance le plus important pour vos mises à jour OTA régulières.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
Une fois votre QA terminée :
bunx @capgo/cli@latest bundle upload --channel production --delta
Si vous voulez garder une CI stricte, utilisez --delta-only pour 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 prend en charge les Delta updates. Avec des versions de plugins mixtes, les appareils plus anciens qui ne prennent pas en charge la livraison delta basée sur le manifest ne pourront pas télécharger cette mise à jour.
C'est d'autant plus important 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
Les assets volumineux alourdissent discrètement les bundles OTA.
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.
- Faites attention aux images marketing, aux vidéos d'onboarding et aux assets de campagnes ponctuelles remplacés à chaque release.
- Laissez les assets stables stables. Grâce aux Delta updates, 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 : un minuscule correctif d’interface qui oblige les utilisateurs à télécharger un tas de médias sans rapport.
3. Réservez les releases natives aux vrais changements natifs
Capgo met à jour la couche web : HTML, CSS, JavaScript et assets chargés à l’exécution.
Ce n’est pas le bon canal pour :
- les nouveaux plugins natifs,
- les modifications de permissions,
capacitor.config.tsmodifications,- tout ce qui modifie l’état du projet natif iOS ou Android.
Cette frontière compte aussi pour les performances. Si vous continuez à faire passer des changements structurels majeurs par la voie OTA, votre stratégie de mise à jour devient plus lourde et plus risquée au fil du temps.
Utilisez délibérément deux voies de release :
Voie native
Pour les modifications de plugins, de permissions et de configuration native :
bun run build
bunx cap sync
Publiez ensuite une release store classique.
Voie 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 store intègre cette nouvelle baseline, ce qui garde les futurs diffs Capgo plus petits.
4. Utilisez des canaux pour limiter la taille du déploiement
Une mise à jour « lean » ne se résume pas aux mégaoctets. Elle dépend aussi du nombre d’appareils qui la reçoivent avant que vous ne sachiez qu’elle est bonne.
de Capgo système de canaux est la façon la plus simple de le contrôler :
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 de vrais appareils.
- Déployez progressivement, que ce soit via des canaux contrôlés ou un déploiement par pourcentage.
- Rollback immédiat si la santé se dégrade.
Si votre app a plusieurs baselines natives en production, associez les canaux au ciblage de version. Cela évite aux anciens binaires de recevoir des bundles incompatibles ou trop lourds.
Pour les équipes qui veulent 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 internes TestFlight ou Play.
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 démarrage doit être rigoureux.
de Capgo comportement de mise à jour la doc recommande explicitement d'associer directUpdate avec les mises à jour Delta. C'est le bon choix par défaut.
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 les 10 secondes par défaut notifyAppReady() fenêtre, ou dans la durée que appReadyTimeout vous avez définie dans votre config Capacitor, Capgo peut marquer ce bundle comme invalide et restaurer la dernière version valide. C'est le comportement de rollback que vous voulez en production, mais cela implique aussi de soigner le démarrage :
- Appelez
notifyAppReady()au bon endroit - Évitez les tâches de démarrage lentes sur le chemin critique
- Sauvegardez et restaurez soigneusement l'état de l'app en cas de rechargement immédiat
- Testez réseau instable et appareils peu performants avant un déploiement général
Si vous ne l'avez pas relu récemment, le guide notifyAppReady mérite une relecture.
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 finitions UI,
- parcours d'onboarding,
- logique de l'écran de tarifs,
- branchement des analytics,
- feature flags,
- rendu du prompt ou de la 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 cycles TestFlight et une boucle de feedback plus resserrée pour l'équipe. C'est l'un des avantages les plus sous-exploités de Capgo : vous pouvez faire passer plus de travail de revue et de QA par l'OTA sans casser la frontière native/web.
Notre guide sur le staging avec un seul ID d’application mobile présente une méthode pratique pour que cela reste propre au fil du temps.
7. Ne pas mélanger le lean et le secret
Les petits bundles et les bundles sécurisés résolvent des problèmes différents.
Les canaux contrôlent l’éligibilité. Ils ne rendent pas un bundle confidentiel à eux seuls.
Si vous avez besoin de garanties de livraison renforcées :
- activer Chiffrement Live Update,
- utiliser stockage personnalisé ou livraison auto-hébergée,
- keep private keys only in CI or secured operator workflows.
Cela ne rend pas la taille de la mise à jour sans importance. Cela signifie simplement qu’il faut optimiser les deux dimensions :
- légère pour la vitesse,
- chiffrée pour le contrôle de la livraison,
- canaux pour le contrôle du déploiement,
- 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 modifications JS avec
--deltapar défaut. - Utiliser
stagingetbetades canaux avantproduction. - Regarder statistiques 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 de mettre les médias volumineux et fréquemment modifiés dans le bundle quand c'est possible.
- Rafraîchissez la baseline native après une forte augmentation des assets ou des modifications natives.
- Considérez
notifyAppReady()et le comportement de rollback relève de l’ingénierie de release, pas du setup.
Cette combinaison reste rapide bien plus longtemps que l'approche courante du « simple upload de ce qui a changé ».
Pour conclure
Pour les équipes Capgo, « léger et rapide » n'est pas seulement une question de taille de bundle.
C'est un problème de conception de release.
Utilisez les Delta updates pour la taille de la charge utile, les canaux pour l'ampleur du déploiement, et les rollbacks pour limiter l'impact des échecs. En envisageant l'OTA ainsi, vos mises à jour restent rapides même quand l'app, l'équipe et la base d'utilisateurs grossissent.
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’avec 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 bêta-test pour le workflow produit de la Solution de bêta-test, et Solution de ciblage de version pour le workflow produit de la Solution de ciblage de version.