Performance
Mobile
Otimização
App
iOS
Android

Optimización del rendimiento móvil: guía completa

Optimización del rendimiento móvil: guía completa

El rendimiento es experiencia. Las aplicaciones lentas frustran y quedan abandonadas. Esta guía presenta técnicas para optimizar el rendimiento en aplicaciones de iOS y Android.

Por qué es importante el rendimiento

Experiencia

60 fps es la expectativa. Jank es inaceptable.

Retención

Las aplicaciones lentas se desinstalan.

Conversión

Cada segundo de retraso reduce la conversión.

Tienda de aplicaciones

Las calificaciones mencionan el desempeño con frecuencia.

Métricas de rendimiento

Es hora de interactuar

¿Cuánto tiempo hasta que la aplicación responda?

Velocidad de fotogramas

60 fps = 16 ms por cuadro.

Uso de memoria

Consumo de RAM.

Drenaje de batería

Impacto en la batería.

Tamaño de la aplicación

Tamaño de descarga e instalación.

Perfilado

iOS

Instrumentos, Xcode Profiler.

###Androide

Perfilador de Android Studio, systrace.

Qué medir

CPU, memoria, red, GPU, potencia.

Optimización de inicio

Arranque en frío

La aplicación comienza desde cero. El más lento.

Arranque en caliente

El proceso existe, la actividad se recrea.

Inicio en caliente

La actividad existe, adelante.

Técnicas

  • Inicialización diferida
  • Aplazar lo no esencial
  • Pantalla de presentación eficiente
  • Perfiles de referencia (Android)

Rendimiento de la interfaz de usuario

60 FPS

16 ms para renderizar cada fotograma.

Hilo principal

UI solo en el hilo principal.

Operaciones costosas

Descargar para hilos en segundo plano.

Optimización del diseño

Jerarquías planas, vistas recicladas.

Gestión de memoria

Fugas

Objetos no liberados. Instrumentos/LeakCanary.

Objetos grandes

Imágenes no redimensionadas.

Almacenamiento en caché

Equilibrio entre memoria y procesamiento.

Manejo de poca memoria

Liberar recursos cuando el sistema lo solicite.

Optimización de imagen

Tallas

Subir al tamaño requerido.

###Formatos

WebP, AVIF para ahorro.

Carga diferida

Cargue cuando esté visible.

Almacenamiento en caché

Memoria caché y disco.

Bibliotecas

Deslizamiento, Bobina (Android), SDWebImage (iOS).

Optimización de la red

Minimizar solicitudes

Agregado, lote.

Compresión

Gzip, Brotli.

Almacenamiento en caché

Encabezados de caché HTTP.

Captación previa

Anticipar los datos necesarios.

Paginación

No cargues todo a la vez.

Rendimiento de la lista

Reciclaje

RecicladorView, UICollectionView.

Patrón de soporte de vista

Reutilizar vistas.

Paginación

Desplazamiento infinito con carga.

Desplazamiento suave

Precarga, almacenamiento en caché.

Trabajo en segundo plano

Enhebrado

Corrutinas (Kotlin), GCD (Swift).

Evite el bloqueo

Hilo principal libre.

Cancelación

Cancelar trabajos innecesarios.

Optimización de la batería

Ubicación

Precisión mínima requerida.

Bloqueos de activación

Úselo y suéltelo rápidamente.

Antecedentes

Minimiza el trabajo en segundo plano.

Sensores

Darse de baja cuando no se utilice.

Tamaño de la aplicación

###Activos

Comprime imágenes, elimina las no utilizadas.

Dependencias

Sólo lo necesario.

División de código

Entrega bajo demanda (Android).

Paquetes de aplicaciones

Play/App Store genera APK/IPA optimizados.

Rendimiento de la base de datos

Índices

En consultas frecuentes.

Operaciones por lotes

Escritos grupales.

Consultas asíncronas

No bloquees la interfaz de usuario.

Datos de habitación/núcleo

Utilice ORM de manera eficiente.

Herramientas

iOS

  • Instrumentos
  • Gráfico de memoria Xcode
  • Kit de métricas

###Androide

  • Perfilador de Android Studio
  • FugaCanario
  • Perfiles de referencia

Multiplataforma

  • Rendimiento de base de fuego
  • Aleta

Pruebas de rendimiento

Puntos de referencia

Mida las métricas de manera consistente.

Rango de dispositivos

Pruebe en dispositivos débiles.

Automatizado

Pruebas que detectan regresiones.

Errores comunes

Optimización prematura

Optimice el verdadero cuello de botella.

Pérdidas de memoria

No detectado durante el desarrollo.

Bloqueo del hilo principal

E/S en el hilo principal.

Tamaños de imagen

Cargue resolución completa para miniaturas.

Conclusión

El rendimiento es una característica crucial. Perfile antes de optimizar, céntrese en cuellos de botella reales y monitoree continuamente. Las aplicaciones rápidas retienen a los usuarios y generan mejores reseñas.

##Preguntas frecuentes

1) ¿Dónde empezar a optimizar? Perfil primero. Identificar verdaderos cuellos de botella.

2) ¿A qué velocidad de fotogramas deberías aspirar? 60 fps. 120 fps en dispositivos con alta actualización.

3) ¿Son comunes las pérdidas de memoria? Más de lo que imaginas. Utilice herramientas de detección.

4) ¿La multiplataforma afecta el rendimiento? Puede. Flutter y React Native tienen gastos generales. Pero son optimizables.

5) ¿Cómo probar el rendimiento? Dispositivos reales, especialmente los más débiles.

Lea también