Passer au contenu principal

Comment les tâches de fond fonctionnent dans Capacitor

Découvrez comment gérer efficacement les tâches de fond dans les applications mobiles, optimisant les performances et l'expérience utilisateur sur iOS et Android.

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

Comment les tâches de fond fonctionnent dans Capacitor
  • Pourquoi elles sont importantesLes tâches de fond améliorent l'expérience utilisateur en s'assurant que les applications sont toujours à jour et réactives.
  • Limites du plateauiOS autorise ~30 secondes pour les tâches, tandis que Android permet jusqu'à 10 minutes mais recommande des tâches plus courtes pour la cohérence.
  • CapacitorRôle de __CAPGO_KEEP_0__ Capacitor simplifie la gestion de ces tâches avec des API cross-plateformes, ce qui facilite la gestion des changements d'état de l'application et des contraintes spécifiques au plateau.
  • Éléments de base de la configurationVous aurez besoin d'installer des plugins, de configurer les paramètres pour iOS (via Xcodeet iOS (via AndroidManifest.xml, et optimisez les tâches pour une efficacité en batterie et en mémoire.

Comparaison Rapide des Limites de Tâches d'Arrière-plan iOS vs. Android

Fonctionnalité iOS (~30 secondes) Android (~10 minutes)
Durée Maximale de Tâche ~30 secondes ~10 minutes
Intervalle Minimal Déterminé par le système 15 minutes
Permissions Spéciaux Modes d'arrière-plan dans Xcode Permissions dans AndroidManifest
Flexibilité des Tâches Stricte Plus souple

Conseil Pro: Utilisez des outils comme Capgo pour obtenir des mises à jour en direct pour ajuster les tâches d'arrière-plan instantanément sans attendre l'approbation de la boutique d'applications. Cela garantit une performance fluide et rend les utilisateurs heureux. Prêt à plonger plus profondément ? Commençons à tout décomposer.

Comment Créer des Tâches d'Arrière-plan dans Ionic avec Capacitor ⚡️

Site Web du Framework Ionic

Caractéristiques clés de Capacitor’s Tâche de fond API

Capacitor’s Tâche de fond API fournit des outils pour gérer efficacement les transitions d'état de l'application. Il se concentre sur deux composants de base : appels de cycle de vie qui suivent les changements d'état de l'application et traitement spécifique à la plateforme pour tenir compte des contraintes uniques d'iOS et Android.

Appels de cycle de vie pour les tâches de fond

Les appels de cycle de vie de Capacitor sont conçus pour surveiller les transitions d'état de l'application et déclencher des comportements spécifiques. Ces appels jouent un rôle clé dans la gestion des tâches lorsqu'elles passent entre les états de fond et de premier plan.

L'écouteur est l'outil principal pour détecter les transitions entre les modes d'avant-plan et d'arrière-plan appStateChange __CAPGO_KEEP_0__ Lorsque son implémentation varie par plateforme, son comportement reste cohérent : [1]iOS : Écoute les événements

  • etAndroid : S'appuie sur les méthodes UIApplication.willResignActiveNotification et UIApplication.didBecomeActiveNotification de __CAPGO_KEEP_0__’s Activity.
  • While its implementation varies by platform, its behavior remains consistent:iOS : Écoute les événements onResume et onStop methods in Capacitor’s Activity.
  • Langage Web: Utilise l'événement du document visibilitychange événement.

Pour un contrôle plus granulaire, Capacitor propose pause et resume écouteurs. Ces hooks déclenchent pendant des transitions spécifiques, comme lorsque l'application entre en arrière-plan ou revient en avant-plan, en utilisant des événements spécifiques à la plateforme [1].

Le beforeExit hook, fourni par le plugin BackgroundTask, est particulièrement important pour la gestion des tâches d'arrière-plan [2]. Il permet aux développeurs d'exécuter des opérations critiques pendant une courte fenêtre avant que le système ne termine l'application. Pour s'assurer d'un traitement correct des ressources, le callback doit appeler BackgroundTask.finish({ taskId }). Ce hook est particulièrement utile sur iOS, où les politiques de terminaison sont strictes.

Sur Android, les développeurs peuvent également utiliser le backButton écouteur, qui remplace le comportement par défaut du bouton de retour. Cela permet une gestion personnalisée à l'aide de window.history.back() ou App.exitApp() [1].

Ces hooks de cycle de vie sont conçus pour s'aligner sur les restrictions spécifiques de la plateforme décrites ci-dessous.

Limites de la plateforme

Une gestion efficace des tâches en arrière-plan nécessite une compréhension claire des limitations imposées par iOS et Android. Les deux plateformes visent à conserver la durée de vie de la batterie et les performances du système, mais leurs approches diffèrent [4].

Fonctionnalité iOS Android
Durée de fonctionnement de la tâche ~30 secondes ~10 minutes (30 secondes recommandées pour les applications cross-platform)
__CAPGO_KEEP_0__ déterminé par l'OS 15 minutes
Modes de fond requis Oui (configuré dans Xcode) Non, mais affecté par les paramètres de l'économiseur de batterie
Flexibilité d'exécution des tâches Stricte Plus souple

Activé iOSLes tâches de fond nécessitent des déclarations explicites dans les paramètres Xcode pour des modes spécifiques. De plus, le système d'exploitation alloue du temps de fond en fonction de l'utilisation de l'application, favorisant les applications les plus utilisées.

Androidd'un autre côté, offre une plus grande flexibilité mais impose un intervalle minimum de 15 minutes pour les tâches de fond répétitives. Même si les tâches de fond de base n'ont pas besoin de permissions spéciales, les fonctionnalités d'optimisation de la batterie peuvent perturber l'exécution des tâches [4].

Une limitation majeure sur les plateformes est que Les fonctions de timing JavaScript comme setTimeout et setInterval ne fonctionnent plus lorsque l'application entre en arrière-plan [3]. Cela signifie que les tâches dans le beforeExit callback doivent être terminées de manière synchrone ou à l'aide de la mise en œuvre de fond native

Android introduit également des défis en raison des paramètres d'optimisation de la batterie spécifiques aux fabricants. Les marques comme Samsung et Huawei incluent souvent des fonctionnalités de sauvegarde d'énergie supplémentaires qui peuvent nécessiter que les utilisateurs blanchissent manuellement les applications pour s'assurer d'une exécution fiable des tâches de fond [4].

Configuration des tâches de fond dans Capacitor

Pour activer les tâches de fond dans Capacitor, vous devrez installer des plugins spécifiques et ajuster les paramètres natifs pour les plateformes iOS et Android.

Installation et synchronisation des plugins requis

Le Exécuteur de fond plugin permet l'exécution du JavaScript code en dehors de la vue web [4]. Pour l'intégrer dans votre projet, commencez par installer le plugin via npm:

npm install @capacitor/background-runner

Une fois installé, synchronisez le plugin avec vos plateformes natives :

npx cap sync

Cette étape assure que les fichiers et les configurations nécessaires sont ajoutés à vos projets iOS et Android. Omettre cette étape pourrait empêcher les tâches de fond de fonctionner comme prévu.

Ensuite, créez un fichier de tâche de fond (par exemple, runner.js) et assurez-vous qu'il est inclus dans votre sortie de build. Pour les projets Angular mettez à jour angular.json To inclure ce fichier. Si vous utilisez un autre framework, assurez-vous que le fichier fait partie du processus de build.

Enfin, configurez votre capacitor.config.ts pour spécifier le fichier de lancer, les déclencheurs d'événement et les détails de timing. Assurez-vous que l'étiquette du plugin dans cette configuration correspond à l'ID de votre application - cela prévient les problèmes de localisation du fichier [5].

Avec le plugin installé et configuré, l'étape suivante consiste à affiner les paramètres spécifiques à la plateforme pour activer l'exécution en arrière-plan.

Configuration des paramètres de l'exécution en arrière-plan pour iOS et Android

Les deux iOS et Android nécessitent une configuration supplémentaire pour supporter les tâches en arrière-plan.

Étapes de configuration pour iOS :

Pour activer les opérations en arrière-plan sur iOS, vous devrez accorder des permissions explicites à l'aide de la capacité de modes de fond. Ouvrez Xcode et activez les modes suivants sous les capacités de fond de votre application :

  • Récupération de fond
  • Traitement de fond

Ensuite, mettez à jour AppDelegate.swift avec ces lignes :

  • BackgroundRunnerPlugin.registerBackgroundTask()
  • BackgroundRunnerPlugin.handleApplicationDidFinishLaunching(launchOptions: launchOptions)

Ces ajouts assurent que iOS reconnaît les exigences de tâches de fond de votre application et initialise correctement le plugin. Si vos tâches impliquent les services de localisation, n'oubliez pas d'inclure les descriptions de confidentialité nécessaires dans votre fichier. descriptions de confidentialité dans votre fichier. Info.plist Étapes de configuration Android :

Pour Android, les permissions doivent être ajoutées à

Includez les éléments suivants : android/app/src/main/AndroidManifest.xmlLa permission est essentielle pour Android 12 et ultérieurs, car elle permet un timing précis pour les tâches de fond

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />

Pour Android 13 et ultérieurs, vous devez également gérer les permissions de notification en temps de exécution si vos tâches impliquent des notifications utilisateur. SCHEDULE_EXACT_ALARM Considérations relatives à l'optimisation de la batterie : [4][5]Les fonctionnalités de sauvegarde de la batterie agressives d'Android peuvent perturber les tâches de fond. Même si vous ne pouvez pas désactiver ces optimisations de manière programmée, vous pouvez guider les utilisateurs pour blanchir votre application dans leurs paramètres de batterie. Les fabricants comme Samsung et Huawei incluent souvent des fonctionnalités de sauvegarde de la puissance supplémentaires, qui peuvent nécessiter que les utilisateurs ajustent manuellement leurs paramètres.

Étapes de configuration Android :

Étapes de configuration Android :

To garantir la compatibilité sur les appareils et les versions d'OS, écrivez votre code pour s'adapter au plus petit dénominateur commun.

Lors de la mise en œuvre de votre tâche de fond en JavaScript, assurez-vous que chaque gestionnaire d'événement appelle resolve() ou reject() pour empêcher le lanceur de se terminer prématurément [4].

Meilleures Pratiques pour la Mise en œuvre de Tâches de Fond

La mise en œuvre efficace des tâches de fond nécessite une approche réfléchie pour gérer les ressources et gérer les erreurs. Une mauvaise exécution peut entraîner des batteries épuisées, des plantages d'application et même des rejets d'application, ce qui peut frustrer les utilisateurs et nuire à la réputation de votre application.

Réduction de la Consommation d'Energie et de la Mémoire

Optimisation de la Durée et de la Fréquence des Tâches

L'un des facteurs clés pour conserver la vie de la batterie est de se conformer aux limitations de la plateforme. Au lieu d'essayer de contourner ces restrictions, conçoit les tâches pour s'adapter à elles.

Concentrez-vous sur les opérations essentielles pour les tâches de fond. Si vous vous occupez de grands ensembles de données, divisez-les en lots plus petits qui peuvent être traités sur plusieurs sessions. Par exemple, synchroniser un grand nombre de registres en lots plus petits garantit que chaque session reste dans le temps alloué, réduisant le risque de terminaison de la tâche.

Stratégies de Gestion de la Mémoire

Les tâches d'arrière-plan fonctionnent généralement avec moins de mémoire que les processus de premier plan. Évitez de charger des fichiers volumineux, comme des images ou des vidéos, pendant ces opérations. Si vous devez travailler avec des fichiers multimédias, traitez-les en petits morceaux et libérez la mémoire immédiatement après chaque étape. Cette approche minimise le risque de panne liée à la mémoire.

Efficacité des opérations réseau

Lors de la réalisation de requêtes réseau en arrière-plan, utilisez des stratégies comme l'expansion exponentielle pour les retentatives pour économiser la vie de la batterie. Étalez les tentatives de retentatives et reportez les opérations non urgentes jusqu'à ce que l'application soit active en premier plan. La compression des payloads de données et l'utilisation de formats légers comme JSON ou Protocol Buffers peuvent également aider à réduire le temps d'exécution et la consommation d'énergie. Une fois l'utilisation des ressources optimisée, le prochain pas consiste à s'assurer d'une gestion d'erreurs robuste pour la stabilité des tâches.

Gestion des erreurs dans les tâches d'arrière-plan

Implémenter une gestion robuste des promesses

Puisque les tâches d'arrière-plan dans Capacitor dépendent des promesses JavaScript, les rejets non gérés peuvent causer le lanceur de tâches à failir. Assurez-vous toujours de mettre vos code dans des blocs try-catch pour s'assurer d'une gestion appropriée des erreurs. Par exemple :

// Example of good error handling
try {
  const result = await performBackgroundWork();
  resolve(result);
} catch (error) {
  console.error('Background task failed:', error);
  reject(error);
}

Cette approche s'assure que les erreurs sont enregistrées et gérées, empêchant les failures inattendues.

Gérer les échecs spécifiques à la plateforme

Diverses plateformes imposent des restrictions uniques sur les tâches de fond. Par exemple, iOS peut interrompre brusquement les tâches lorsque celles-ci dépassent les limites de temps, tandis que Android peut annuler les tâches en raison de contraintes de mémoire ou de paramètres de sauvegarde d'énergie. Pour atténuer ces problèmes, enregistrez les progrès intermédiaires dans le stockage local, afin que les tâches puissent reprendre là où elles en étaient si elles sont interrompues. le stockage local Afin de déboguer les tâches de fond, il est parfois difficile d'attacher des débogueurs ou de surveiller les sorties de console de manière cohérente. Mettez en place un système de journalisation pour enregistrer les événements et les erreurs clés localement ou pour les envoyer à un service d'analytique dès que l'application est à nouveau active. De plus, configurez des mécanismes de rechange, comme la file d'attente des opérations échouées pour les reprendre lorsque l'application est rouvert, afin de vous assurer que les processus critiques ne sont pas perdus.

La Dégénérescence Gracieuse

Les appareils ne supportent pas les tâches de fond de manière égale. Les anciens appareils Android ou ceux avec des paramètres de sauvegarde d'énergie agressifs peuvent imposer des limites plus strictes. Conceptionz votre application pour gérer ces scénarios de manière gracieuse. Par exemple, autorisez les tâches à s'exécuter en avant-plan si la mise en œuvre de fond échoue. Cette approche hybride garantit que l'application continue à fonctionner même dans des conditions difficiles.

Utilisation des Tâches de Fond avec

__CAPGO_KEEP_0__

’s Solution de Mise à Jour en Direct Capgo Interface de la Console de Mise à Jour en Direct__CAPGO_KEEP_0__

Capgo

Gérer les tâches de fond peut être compliqué, surtout lorsque les mises à jour traditionnelles des magasins d'applications ralentissent le processus. Capgo’s solution de mise à jour en direct supprime ce retard en vous permettant de mettre à jour instantanément votre logique de tâche de fond - sans besoin d'approbation de la boutique d'applications.

Avec plus de 1,7 trillion mises à jour délivrées dans 2 000 applications, Capgo’s CDN peut télécharger un bundle de 5 MB en seulement 114 millisecondes, ce qui garantit que vos améliorations de la logique de tâche de fond atteignent les utilisateurs presque immédiatement.

Coordonner les Tâches de Fond avec les Mises à Jour OTA

Capgo se concentre sur la mise à jour uniquement de la couche JavaScript de votre Capacitor application. Cela signifie que vous pouvez ajuster votre logique de tâche de fond sans toucher le code natif, tout en restant dans les lignes directrices d'Apple et de Google.

The platform excels at speed, delivering updates to 95% des utilisateurs actifs dans les 24 heures. Cette mise à jour rapide peut être un véritable sauvegarder lors de la correction des fuites de mémoire ou l'optimisation des opérations de fond d'intensité CPU qui pourraient autrement dégrader l'expérience utilisateur.

Capgo utilise un système de canal pour gérer les mises à jour. Vous pouvez tester les modifications dans un canal de développement, les mettre en production dans un canal bêta, most users receive these updates seamlessly, without requiring any manual action. Plus, if something goes wrong, Capgo automatically manages update failures and provides detailed analytics to pinpoint issues by device or region.

“@Capgo is a must-have tool for developers who want to be more productive. Avoiding review for bug fixes is golden.” - Bessie Cooper

réduisant ainsi les risques tout en vous assurant que vos mises à jour sont soigneusement testées. Avec un taux de réussite mondial de l’ordre de 82% , la plupart des utilisateurs reçoivent ces mises à jour de manière transparente, sans nécessiter aucune action manuelle. De plus, si quelque chose se produit mal, __CAPGO_KEEP_0__ gère automatiquement les échecs de mise à jour et fournit des analyses détaillées pour identifier les problèmes par appareil ou région. « @__CAPGO_KEEP_0__ est un outil indispensable pour les développeurs qui veulent être plus productifs. Éviter les examens pour les corrections de bogues est d'or. » - Bessie Cooper, « Gardez la synchronisation des versions »

Mettre en œuvre un contrôle de version est essentiel pour maintenir les tâches de fond en cours de manière fluide. Capgo’s tableau de bord d’analytique offre des informations en temps réel sur les taux de réussite des mises à jour et l’engagement des utilisateurs, vous aidant à évaluer si vos optimisations des tâches de fond sont en train de produire les résultats attendus.

Lorsque les mises à jour introduisent des problèmes inattendus - comme une consommation accrue de la batterie ou des échecs sur des appareils spécifiques - Capgo’s fonctionnalité de reversion vous permet de rétablir instantanément une version stable. Cela garantit que les utilisateurs ne sont pas confrontés à des problèmes prolongés, gardant l’intégrité de la performance de votre application.

Capgo s’intègre également de manière fluide avec les pipelines CI/CD pour automatiser le processus de construction, de test et de déploiement de nouvelles tâches de fond code. Une fois les tests confirmés, la plateforme s’assure que seuls les tâches de fond mises à jour code sont téléchargées - et non l’ensemble du bundle d’application. Cette approche minimise les temps de téléchargement et garde l’expérience utilisateur ininterrompue.

L’impact de ces optimisations est clair. Capgo’s approche fondée sur les données a conduit à une augmentation de 460% de l’activité des utilisateurs et une réduction de 40% des crashs d’application. Ces gains sont souvent le résultat d’une meilleure mise en œuvre des tâches de fond qui gèrent efficacement les ressources et gèrent les cas d’extrémité avec facilité.

Conclusion

Les tâches de fond sont les héros inconnus des applications réactives __CAPGO_KEEP_0__ tâches de fond sont les héros inconnus des applications réactives Capacitor. Lorsqu'ils sont gérés efficacement, ils assurent que votre application fonctionne sans problème, conserve la vie de la batterie et offre une performance optimale. Considérez ceci : 90 % des utilisateurs abandonnent les applications avec une mauvaise performance, et 60 % suppriment les applications après les crashes. Ces chiffres mettent en évidence l'importance cruciale de gérer efficacement les tâches de fond - non seulement pour des raisons techniques, mais pour le succès global de votre application.

Capacitor facilite les complexités du développement de tâches de fond transversales en fournissant un API unifié qui remplit l'écart entre iOS et Android. Par exemple, iOS limite généralement les tâches à environ 30 secondes, tandis qu'Android permet jusqu'à 10 minutes. Cependant, maintenir les tâches sous 30 secondes sur tous les plateformes garantit une performance cohérente. Les applications qui maintiennent une vitesse de 60 images par seconde ont montré une augmentation de 52 % de l'engagement des utilisateurs, prouvant l'importance cruciale de la gestion efficace des tâches de fond pour conserver les utilisateurs. Le Capacitor unifié de API prend également en charge les mises à jour en temps réel, vous permettant de résoudre les problèmes de performance en temps réel.

En combinant ce API avec la solution de mise à jour en temps réel de Capgo, vous pouvez résoudre les problèmes de performance instantanément - évitant les retards qui résultent des approbations de l'App Store. Ajoutez des techniques d'optimisation basées sur des données, et vous obtenez une recette pour une meilleure engagement des utilisateurs et une stabilité de l'application.

The key to success lies in writing clean, modular code that avoids unnecessary resource consumption. This approach not only ensures smoother performance but also builds trust with users who expect reliable, seamless experiences. With a solid strategy for background task management, your Capacitor app can meet - and exceed - the expectations of today’s users.

FAQs

::: faq

Comment optimiser les tâches de fond dans Capacitor pour iOS et Android ?

Pour tirer le maximum des tâches de fond dans Capacitor pour les deux iOS et Android, il est essentiel d'utiliser outils spécifiques à la plateforme et de suivre les meilleures pratiques. Sur Android, des outils comme JobScheduler ou WorkManager peuvent vous aider à planifier les tâches de manière plus efficace. Pour iOS, il est crucial de travailler dans les limites d'exécution de fond de la plateforme pour éviter de vider inutilement la batterie.

Une bonne stratégie pour réduire la consommation de ressources est batching les requêtes réseau et planifier les tâches pendant les périodes d'activité faible, comme lorsque l'application tourne en arrière-plan. Gardez à l'esprit que Android prend en charge les tâches de longue durée, tandis que iOS impose des règles plus strictes pour préserver la vie de la batterie. Pour maintenir une fonctionnalité cohérente sur les plateformes, il est une bonne idée de concevoir vos tâches en tenant compte des contraintes plus strictes d'iOS.

Si vous cherchez un moyen de simplifier les mises à jour et de rendre les optimisations plus faciles, des plateformes comme Capgo peuvent être un changement de jeu. Elles permettent les mises à jour en direct et aident à vous assurer que votre application reste conforme aux exigences de l'iOS et de l'Android.

:::

How can I prevent errors and manage resources effectively in Capacitor background tasks to keep my app running smoothly?

Comment puis-je prévenir les erreurs et gérer efficacement les ressources dans les tâches d'arrière-plan Capacitor pour garder mon application en cours de fonctionnement ?

  • Pour garder vos tâches d'arrière-plan __CAPGO_KEEP_0__ en cours de fonctionnement, voici quelques conseils pratiques à suivre : Restez en avance sur les erreurs potentielles
  • en validant les entrées de l'utilisateur et en gardant un œil sur les conditions réseau. Cela vous permet de contourner les pièges courants avant qu'ils ne créent des problèmes. Utilisez les tâches d'arrière-plan Capacitor Background Task API To gérer efficacement les tâches en arrière-plan. Cela garantit que votre application utilise les ressources de manière judicieuse tout en s'exécutant en arrière-plan.
  • Surveillez l'utilisation de la mémoire et de la CPU.Évitez les instabilités de l'application en mettant en œuvre des routines de nettoyage qui libèrent les ressources une fois les tâches terminées. Cela minimise les chances de fuites de mémoire ou de crashes inattendus.

En suivant ces pratiques, votre application peut maintenir une forte performance et une fiabilité, même lors de la gestion d'opérations en arrière-plan.

:::

How does Capgo improve the handling of background tasks in Capacitor apps?

Comment Capgo améliore-t-il la gestion des tâches en arrière-plan dans les applications Capacitor ? __CAPGO_KEEP_0__ simplifie la gestion des tâches en arrière-plan dans les applications __CAPGO_KEEP_1__ en permettant des mises à jour instantanées

qui ne nécessitent pas d'approbations de la part de l'App Store. Les développeurs peuvent déployer des correctifs, de nouvelles fonctionnalités ou des optimisations en temps réel, ce qui garantit que les tâches en arrière-plan restent à jour et répondent aux exigences du plateau. Il améliore également la performance et la sécurité de l'application grâce à l' et des flux de déploiement efficaces. En gardant les tâches de fond stables et optimisées, Capgo aide à livrer une expérience utilisateur fluide tout en respectant les lignes directrices d'Apple et d'Android.

Continuez de la section Comment fonctionnent les tâches de fond dans Capacitor

Si vous utilisez Comment fonctionnent les tâches de fond dans Capacitor pour planifier le travail de plugin natif, connectez-le avec Répertoire de plugins de Capgo pour le flux de travail du produit dans Répertoire de plugins de Capgo Plugins de Capacitor par Capgo pour les détails d'implémentation dans Plugins de Capacitor par Capgo Ajouter ou mettre à jour des plugins pour les détails d'implémentation dans Ajouter ou mettre à jour des plugins Alternatives de plugins d'entreprise Ionic Enterprise pour le flux de produits dans les alternatives Ionic Enterprise Plugin Capgo Builds natifs pour le flux de produits dans Capgo Builds natifs.

Mises à jour en direct pour les applications Capacitor

Lorsqu'un bug de couche web est en direct, expédiez la correction à travers Capgo au lieu de attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les changements natifs 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.