Communitygithub.com

ParkersYourDad/performance-fiabilite-mobile

Mesure et améliore les performances et la fiabilité des applications Flutter (démarrage, rendu des images, défilement, animations, mémoire, batterie, réseau) à l'aide de preuves reproductibles. Idéal pour les applications lentes ou saccadées, les budgets de performance, le profilage ou la fiabilité en production.

Qu'est-ce que performance-fiabilite-mobile ?

Cette compétence permet aux agents IA (comme Claude Code ou Cursor) d'analyser et d'optimiser les performances des applications mobiles Flutter de manière systématique et fondée sur des preuves. Elle couvre le diagnostic des goulots d'étranglement (build/layout, raster/GPU, Dart CPU, plugins natifs, décodage d'images, mémoire, I/O, réseau), le protocole de mesure (appareils physiques, mode profile Flutter, indicateurs P50/P95, séparation des démarrages à froid/à chaud), et la séquence d'optimisation (reproduire, mesurer, modifier, valider). Elle gère également la fiabilité en production (SLI/SLO, taux de crash/ANR, récupération après reprise/connexion). Très utile pour les développeurs souhaitant respecter des budgets de performance, identifier les causes racines de lenteur, et fournir des correctifs documentés avec preuves avant/après.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ParkersYourDad/flutter-engineering-skills/tree/HEAD/skills/mobile-performance-reliability

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Performance et Fiabilité Mobiles

Standards partagés

Utilisez ces documents au niveau du référentiel comme source de vérité unique. Ne copiez pas leurs listes de contrôle dans cette compétence et ne créez pas de variantes locales contradictoires :

Mission

Trouver le goulot d'étranglement mesuré et améliorer le résultat visible par l'utilisateur sans optimisation prématurée ni architecture inutile.

Ce que je possède

Budgets de performance, plans de profilage, mesures de démarrage/image/mémoire/réseau, diagnostic de goulot d'étranglement, indicateurs de fiabilité, vérifications de régression de performance et conseils de correction fondés sur des preuves.

Ce que je ne possède pas

Direction visuelle, modification des exigences produit, refactoring large sans preuve, ou affirmation de résultats à partir de mesures en debug/émulateur.

Protocole de mesure

  • Profiler sur des appareils physiques en mode profile Flutter ; utiliser les builds release pour les tests de release et le comportement au démarrage. Les résultats en debug et émulateur ne sont pas des preuves de performance en release.
  • Commencer par l'appareil le moins performant pris en charge et inclure les appareils à rafraîchissement élevé lorsque pertinent.
  • Enregistrer l'appareil, l'OS, le taux de rafraîchissement, la version Flutter/Dart, le mode de build, le scénario, la taille du jeu de données, les conditions réseau, les répétitions et les outils.
  • Inspecter séparément les temps de trame UI et raster. Le budget de trame dérive du taux de rafraîchissement de l'écran ; ne pas imposer un seul seuil de 60 Hz à tous les appareils.
  • Reporter P50/P95 lorsque la taille de l'échantillon le permet. Séparer les démarrages à froid et à chaud, les animations de première utilisation et après échauffement, et le rendu local de l'attente réseau.
  • Mesurer les parcours utilisateur : première interaction, navigation principale, défilement, recherche/saisie, médias, feuilles et transitions coûteuses.
  • Mesurer la mémoire après échauffement et parcours répétés ; distinguer les allocations temporaires et le garbage collection normal des fuites d'objets retenus.
  • Mesurer les tailles de payload, le nombre de requêtes, la latence, les tentatives, les annulations, les hits/miss de cache et le comportement en réseau lent.
  • Surveiller l'énergie/le travail en arrière-plan uniquement lorsque l'application utilise le polling, la localisation, les médias, la synchronisation fréquente ou les flux en temps réel.

Séquence d'optimisation

  1. Reproduire le problème dans un scénario contrôlé.
  2. Capturer une référence et identifier si le goulot d'étranglement est build/layout, raster/GPU, Dart CPU, natif/plugin, décodage d'image, pression mémoire, I/O ou réseau.
  3. Choisir le plus petit changement qui adresse la cause mesurée.
  4. Ajouter ou mettre à jour une mesure/test de régression.
  5. Comparer avant et après dans les mêmes conditions.
  6. Vérifier les compromis de correction, d'accessibilité, de mémoire et de batterie.

À éviter

Isolats prématurés, RepaintBoundary excessifs, caches illimités, chargement de jeux de données entiers, polling inutile, effets coûteux d'opacité/clipping/saveLayer, reconstructions larges, travail synchrone dans build, et indicateurs de rendu sans preuve. Garder les valeurs par défaut du moteur de rendu Flutter sauf si le profilage démontre un problème spécifique à l'appareil et que la décision est documentée.

Fiabilité

Pour les parcours critiques en production, travailler avec les équipes opérationnelles pour définir les SLI/SLO de complétion, latence, disponibilité et fraîcheur. Enquêter sur les taux de crash/ANR, les régressions de démarrage, les dépendances backend, les timeouts, les tempêtes de tentatives et la récupération après mise en pause/reprise de l'application ou changement de connectivité.

Porte d'acceptation

Chaque exigence de performance critique a un scénario reproductible, un environnement, une métrique, un percentile, un seuil et une référence. Les conclusions identifient la cause ; les optimisations revendiquées incluent des preuves avant/après. Le comportement matériel/plateforme non mesuré est marqué comme non vérifié.

Skills associés