Communitygithub.com

Rendimiento y Fiabilidad Móvil

Mide y mejora el rendimiento de inicio, renderizado de frames, desplazamiento, animaciones, memoria, batería, red y fiabilidad de servicios en aplicaciones Flutter usando evidencia repetible. Útil para apps lentas o con tirones, presupuestos de rendimiento, perfilado o fiabilidad en producción.

¿Qué es Rendimiento y Fiabilidad Móvil?

Esta habilidad está diseñada para desarrolladores que trabajan con Flutter y buscan optimizar el rendimiento y la fiabilidad de sus aplicaciones móviles de manera sistemática y basada en evidencia. Proporciona un protocolo de medición estricto que exige el uso de dispositivos físicos en modo perfilado, evitando resultados engañosos de depuración o emuladores. La habilidad cubre áreas clave como inicio en frío/caliente, renderizado de frames (UI y raster), memoria, comportamiento de red y batería, y establece una secuencia de optimización que va desde la reproducción controlada del problema hasta la comparación de resultados antes y después. Además, enfatiza la importancia de los presupuestos de rendimiento, la detección de regresiones y la colaboración con operaciones para definir SLIs/SLOs en rutas críticas de producción. Su enfoque práctico y basado en métricas ayuda a evitar optimizaciones prematuras y arquitecturas innecesarias, asegurando que cada cambio esté respaldado por datos concretos.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Rendimiento y Fiabilidad Móvil?

Estándares compartidos

Utiliza estos documentos a nivel de repositorio como fuente única de verdad. No copies sus listas de verificación en esta habilidad ni crees variantes locales conflictivas:

Misión

Encuentra el cuello de botella medido y mejora el resultado visible para el usuario sin optimización prematura ni arquitectura innecesaria.

Responsabilidades

Presupuestos de rendimiento, planes de perfilado, mediciones de inicio/frames/memoria/red, diagnóstico de cuellos de botella, indicadores de fiabilidad, verificaciones de regresiones de rendimiento y consejos de remediación respaldados por evidencia.

No es responsabilidad

Dirección visual, cambios en requisitos de producto, refactorizaciones amplias sin evidencia, ni afirmar resultados basados en mediciones de depuración/emulador.

Protocolo de medición

  • Perfila en dispositivos físicos en modo perfilado de Flutter; usa compilaciones de release para pruebas de humo y comportamiento de inicio. Los resultados de depuración y emulador no son evidencia de rendimiento en release.
  • Comienza con el dispositivo compatible más básico e incluye dispositivos de mayor tasa de refresco cuando sea relevante.
  • Registra dispositivo, SO, tasa de refresco, versión de Flutter/Dart, modo de compilación, escenario, tamaño de conjunto de datos, condición de red, repeticiones y herramientas.
  • Inspecciona los tiempos de frames de UI y raster por separado. El presupuesto de frames se deriva de la tasa de refresco de la pantalla; no impongas un solo umbral de 60 Hz en todos los dispositivos.
  • Informa P50/P95 cuando el tamaño de muestra lo permita. Separa inicio en frío y en caliente, animaciones de primer uso y calentadas, y renderizado local de espera de red.
  • Mide recorridos de usuario: primera interacción, navegación principal, desplazamiento, búsqueda/escritura, medios, paneles laterales y transiciones costosas.
  • Mide memoria después del calentamiento y recorridos repetidos; distingue asignaciones temporales y recolección de basura normal de fugas de objetos retenidos.
  • Mide tamaños de carga, número de solicitudes, latencia, reintentos, cancelación, aciertos/fallos de caché y comportamiento en redes lentas.
  • Monitoriza energía/trabajo en segundo plano solo cuando la aplicación usa sondeo, ubicación, medios, sincronización frecuente o flujos en tiempo real.

Secuencia de optimización

  1. Reproduce el problema bajo un escenario controlado.
  2. Captura una línea base e identifica si el cuello de botella es build/layout, raster/GPU, Dart CPU, nativo/plugin, decodificación de imágenes, presión de memoria, E/S o red.
  3. Elige el cambio más pequeño que aborde la causa medida.
  4. Agrega o actualiza una prueba/medición de regresión.
  5. Compara antes y después bajo las mismas condiciones.
  6. Verifica las compensaciones en corrección, accesibilidad, memoria y batería.

Evitar

Islotes prematuros, RepaintBoundary excesivo, cachés sin límite, cargar conjuntos de datos completos, sondeos innecesarios, efectos costosos de opacidad/recorte/saveLayer, reconstrucciones amplias, trabajo síncrono en build y banderas de renderizador sin evidencia. Mantén los valores predeterminados del renderizador de Flutter a menos que el perfilado demuestre un problema específico del dispositivo y la decisión esté documentada.

Fiabilidad

Para recorridos críticos de producción, trabaja con Operaciones para definir SLIs/SLOs de finalización, latencia, disponibilidad y frescura. Investiga tasas de crash/ANR, regresiones de inicio, dependencias de backend, timeouts, tormentas de reintentos y recuperación después de pausa/reanudación de la aplicación o cambios de conectividad.

Puerta de aceptación

Cada requisito crítico de rendimiento tiene un escenario, entorno, métrica, percentil, umbral y línea base repetibles. Los hallazgos identifican la causa; las optimizaciones reivindicadas incluyen evidencia antes/después. El comportamiento de hardware/plataforma no medido se considera No verificado.

Skills relacionados