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
- Consommation de la batterie dans les applications : comment optimiser les performances mobiles -Optimisation des performances mobiles - Exemples réels pour les débutants
- Développement natif Android : guide complet avec Kotlin
- Développement iOS natif : Guide complet avec Swift et SwiftUI
- Développement natif Android : comment suivre les étapes essentielles
- Développement natif iOS : comment choisir pour les startups
