Performance
Mobile
Otimização
App
iOS
Android

Optimisation des performances mobiles : guide complet

Optimisation des performances mobiles : guide complet

La performance est une expérience. Les applications lentes sont frustrantes et sont abandonnées. Ce guide présente des techniques pour optimiser les performances des applications iOS et Android.

Pourquoi les performances sont importantes

Expérience

60 ips est attendu. Jank est inacceptable.

Rétention

Les applications lentes sont désinstallées.

###Conversions

Chaque seconde de retard réduit la conversion.

###App Store

Les notes mentionnent fréquemment la performance.

Mesures de performances

Il est temps de passer à l'interactivité

Combien de temps jusqu'à ce que l'application réponde.

Fréquence d'images

60 ips = 16 ms par image.

Utilisation de la mémoire

Consommation de RAM.

Vidange de la batterie

Impact sur la batterie.

Taille de l'application

Taille de téléchargement et d’installation.

Profilage

###iOS

Instruments, profileur Xcode.

###Android

Profileur Android Studio, systrace.

Que mesurer

CPU, mémoire, réseau, GPU, alimentation.

Optimisation des startups

Démarrage à froid

L'application démarre à partir de zéro. Le plus lent.

Démarrage à chaud

Le processus existe, l'activité se recrée.

Démarrage à chaud

L'activité existe, manifestez-vous.

Techniques

  • Initialisation paresseuse
  • Reporter les non-essentiels
  • Écran de démarrage efficace
  • Profils de base (Android)

Performances de l'interface utilisateur

60 images par seconde

16 ms pour le rendu de chaque image.

Sujet principal

Interface utilisateur uniquement sur le thread principal.

Opérations coûteuses

Déchargement pour les threads d’arrière-plan.

Optimisation de la mise en page

Hiérarchies plates, vues recyclées.

Gestion de la mémoire

Fuites

Objets non libérés. Instruments/FuiteCanary.

Gros objets

Images non redimensionnées.

Mise en cache

Équilibre entre mémoire et traitement.

Gestion de la mémoire faible

Libérez des ressources lorsque le système le demande.

Optimisation des images

Dimensionnement

Téléchargez à la taille requise.

###Formats

WebP, AVIF pour économiser.

Chargement paresseux

Chargez lorsqu'il est visible.

Mise en cache

Mémoire et cache disque.

Bibliothèques

Glide, Coil (Android), SDWebImage (iOS).

Optimisation du réseau

Réduire les demandes

Agrégat, lot.

###Compression

Gzip, Brotli.

Mise en cache

En-têtes de cache HTTP.

Prélecture

Anticipez les données nécessaires.

Pagination

Ne chargez pas tout en même temps.

Performances de la liste

Recyclage

RecyclerView, UICollectionView.

Modèle ViewHolder

Réutilisez les vues.

Pagination

Défilement infini avec chargement.

Défilement fluide

Préchargement, mise en cache.

Travail en arrière-plan

Fil de discussion

Coroutines (Kotlin), GCD (Swift).

Évitez de bloquer

Fil principal gratuit.

Annulation

Annulez les travaux inutiles.

Optimisation de la batterie

Localisation

Précision minimale requise.

Wake Locks

Utiliser et libérer rapidement.

Contexte

Minimisez le travail en arrière-plan.

Capteurs

Désinscrivez-vous lorsque vous ne l'utilisez pas.

Taille de l'application

###Actifs

Compressez les images, supprimez celles inutilisées.

Dépendances

Seulement ce qui est nécessaire.

Fractionnement du code

Livraison à la demande (Android).

Offres groupées d'applications

Play/App Store génère des APK/IPA optimisés.

Performances de la base de données

Index

Dans les requêtes fréquentes.

Opérations par lots

Écrits de groupe.

Requêtes asynchrones

Ne bloquez pas l'interface utilisateur.

Données de salle/de base

Utilisez efficacement les ORM.

Outils

###iOS

-Instruments

  • Graphique de mémoire Xcode
  • MétriqueKit

###Android

  • Profileur Android Studio
  • FuiteCanary
  • Profils de base

Multiplateforme

  • Performances de Firebase
  • Flipper

Tests de performances

Repères

Mesurez les mesures de manière cohérente.

Plage d'appareils

Testez sur des appareils faibles.

Automatisé

Tests qui détectent les régressions.

Erreurs courantes

Optimisation prématurée

Optimisez le véritable goulot d’étranglement.

Fuites de mémoire

Non détecté pendant le développement.

Blocage du fil principal

E/S sur le thread principal.

Tailles des images

Chargez la pleine résolution pour les vignettes.

Conclusion

La performance est une caractéristique cruciale. Profil avant l’optimisation, concentrez-vous sur les véritables goulots d’étranglement et surveillez en permanence. Les applications rapides retiennent les utilisateurs et génèrent de meilleurs avis.

##FAQ

1) Par où commencer l'optimisation ? Profil d’abord. Identifiez les véritables goulots d’étranglement.

2) Quelle fréquence d'images devriez-vous viser ? 60 images par seconde. 120 ips sur les appareils à rafraîchissement élevé.

3) Les fuites de mémoire sont-elles courantes ? Plus que vous ne l'imaginez. Utilisez des outils de détection.

4) Le multiplateforme affecte-t-il les performances ? C’est possible. Flutter et React Native ont des frais généraux. Mais ils sont optimisables.

5) Comment tester les performances ? De vrais appareils, surtout les plus faibles.

A lire aussi