La durée de vie des batteries reste l'un des facteurs les plus critiques de l'utilisation des appareils mobiles, en particulier pour les utilisateurs qui comptent sur leurs applications iOS tout au long de la journée. À mesure que les applications deviennent plus riches en fonctionnalités, la demande de traitement continu, d'activité réseau et de graphiques haute résolution augmente, ce qui entraîne une écoulement plus rapide des batteries.

Comprendre la consommation de batterie dans les applications iOS

Pour optimiser la durée de vie de la batterie, les développeurs doivent d'abord comprendre comment les applications iOS consomment de l'énergie. Presque chaque opération sur un appareil puise de l'énergie de la batterie, mais certaines activités sont beaucoup plus exigeantes que d'autres.

  • Affichage et rétroéclairage:[ L'écran est souvent le plus grand consommateur de puissance. Haute luminosité, temps d'écran longs, redessiner fréquemment des animations ou des mises à jour inefficaces de l'interface utilisateur augmentent tous les drains.
  • Activité réseau: Les modems cellulaires et les radios Wi-Fi utilisent une puissance importante lors de la transmission ou de la réception de données. Les appels réseau fréquents sont particulièrement inefficaces parce que la radio doit se brancher, se recharger et se recharger pour chaque session.
  • Tâches de fond:[ Les applications qui continuent à exécuter des processus en arrière-plan — comme les mises à jour de l'emplacement, la récupération de fond ou les connexions VoIP — peuvent empêcher le périphérique d'entrer dans un état de faible puissance.
  • CPU et GPU Charge:[ Des calculs complexes, un rendu graphique lourd et des boucles excessives maintiennent le processeur actif, tirant la puissance proportionnelle à la charge.
  • Utilisation du capteur:[ L'accès continu aux capteurs comme le GPS, l'accéléromètre ou le microphone peut rapidement drainer la batterie, surtout si l'application ne gère pas les taux d'échantillonnage ou n'utilise pas les niveaux de précision appropriés.

L'identification de ces composants est le principal coupable de votre application nécessite un profilage avec des outils tels que Xcode , l'onglet Diagnostics d'énergie dans Instruments. Le journal de l'énergie montre des ventilations détaillées de l'utilisation du processeur, de l'activité réseau et de l'utilisation de la localisation au fil du temps, permettant une optimisation ciblée.

Stratégies clés pour les développeurs

L'optimisation efficace de la batterie implique une approche en couches : utiliser des API écoénergétiques, réduire le travail inutile et respecter les états de puissance du système. Voici les techniques les plus efficaces pour les applications qui exigent une utilisation continue.

Minimiser l'activité de fond

L'exécution de l'arrière-plan est un drain majeur de la batterie. iOS fournit plusieurs mécanismes pour le travail de fond, mais chacun devrait être utilisé judicieusement. ]Le background fetch[ permet aux applications de télécharger périodiquement de petites quantités de données, mais la fréquence est gérée par le système. Définissez le à l'intervalle le plus important acceptable (p. ex., si aucune mise à jour de l'arrière-plan n'est nécessaire).

Si votre application utilise des services de localisation, choisissez le niveau de précision approprié. Au lieu de mettre à jour constamment les GPS à haute précision, utilisez surveillance de région[ ou service de localisation à changement significatif pour le suivi de localisation grossière. Par exemple, une application de fitness qui n'a besoin de savoir que quand un utilisateur entre ou quitte un parc peut utiliser la surveillance de région, ce qui est beaucoup plus efficace que le sondage GPS continu.

Optimiser l'utilisation du réseau

Les opérations réseau sont un énorme drain de batterie, particulièrement sur cellulaire.

  • Demandes réseau par lots:[ Au lieu de faire de nombreux petits appels API, agréger les données en moins de demandes plus grandes. La radio passe moins de temps en mode de transmission haute puissance quand elle peut envoyer une explosion de données et puis au ralenti.
  • Utilisez les téléchargements progressifs:[ Pour les grands actifs comme les images ou les fichiers vidéo, téléchargez uniquement les données nécessaires immédiatement. Utilisez des gammes (demandes de gamme de HTTP) ou des API de taille.
  • Activer HTTP / 2 ou QUIC:[ Ces protocoles réduisent les frais de connexion et permettent des flux multiplexés, réduisant la consommation d'énergie par demande.
  • Adopt NSURLSession correctement:[ Utilisez des sessions de fond pour les transferts qui devraient se poursuivre même si l'application est suspendue. Pour les sessions de premier plan, définissez de manière appropriée et utilisez pour éviter les retraits pendant une mauvaise connectivité.
  • Compresser les charges utiles: Utiliser la compression gzip ou Brotli du côté du serveur.

Envisagez d'utiliser notifications de poussée au lieu de sondages. Push est plus écoénergétique parce que le système maintient une connexion persistante unique pour toutes les applications, et l'application ne se réveille que lorsque de nouvelles données arrivent. Pour les mises à jour non critiques, utilisez push background avec des notifications à distance (pousses silencieuses) parcimonieusement, car ils consomment encore de l'énergie pour le traitement.

Exécution efficace du code

Les algorithmes inefficaces et l'utilisation excessive du processeur sont des égouts cachés de batterie. Profilez votre code avec Xcode , pour identifier les points chauds. Les problèmes courants comprennent:

  • Loops de vote inutiles:[ Utilisez des minuteurs seulement quand inévitable; préférez les rappels de délégués ou les rappels que le système allume lorsque les conditions changent.
  • Computer lourd sur le thread principal :[ Décharger le travail dans les files d'attente de fond (en utilisant ou ) pour garder la boucle principale libre pour les mises à jour de l'interface utilisateur.
  • Chargement lassime:[ Charger les ressources (images, modèles de données, contrôleurs de vue) uniquement lorsque cela est nécessaire plutôt que de tout précharger au lancement de l'application.
  • Réduire les objets en hauteur : Réutiliser les objets lorsque c'est possible, surtout en boucles serrées (p. ex. lors du traitement des données à partir de capteurs).

Pour les opérations à haute fréquence comme l'inférence de ML de base ou l'exécution de shader métallique, les appareils iOS ont du matériel dédié (le moteur neuronal, le GPU) qui est beaucoup plus efficace que le processeur. Assurez-vous d'utiliser l'API la plus appropriée pour votre charge de travail — par exemple, en utilisant Vérification des appareils[ ou ARKit[ avec accélération matérielle est mieux que des solutions CPU personnalisées.

APIs performantes

iOS propose plusieurs API conçues spécifiquement pour une faible consommation d'énergie. L'utilisation de celles-ci peut automatiquement sauver la batterie sans optimisation personnalisée:

  • NSURLSession avec configuration de fond: Comme mentionné, il gère les transferts dans un processus séparé qui est moins puissant que l'activité de premier plan.
  • AVCaptureSession – .photo sortie: Lorsque vous utilisez la caméra, choisissez le préréglage pour les images fixes au lieu de la vidéo — la vidéo nécessite une lecture et un traitement continus des capteurs, qui s'écoule rapidement.
  • Lieu de base – mises à jour différées: Lorsque vous lancez en arrière-plan, les mises à jour de l'emplacement peuvent être reportées en utilisant .
  • Tableau de bord énergie:[ Utilisez le pour adapter le comportement de l'application lorsque l'utilisateur a activé le mode faible puissance. Réduisez les animations, baissez les taux d'images, désactivez la synchronisation non essentielle ou passez à des ressources de moindre qualité.

Optimisations du matériel de levier

Les iPhones modernes comprennent le matériel de gestion de l'alimentation comme les Coprocesseurs de mouvement de la série M[ et les encodeurs/décodeurs dédiés. Déchargez le traitement des données vers ces unités chaque fois que possible. Par exemple, utilisez avec un codage accéléré par le matériel au lieu de l'encodage logiciel.

Considérez aussi [[[[[[[][[][][[][][[][][][][[[FLT]]][[[FLT]]]][[[FLT]]][[[FLT]]]][[GPU][GPU][GPU][GPU][GPU][GPU][GPU][GPU][GPU][GPU][G][GPU][G][G][G][G][G][G

Conseils et paramètres de l'utilisateur

Alors que les développeurs contrôlent une grande partie de la consommation d'énergie, les utilisateurs ont également des options pour prolonger la durée de vie de la batterie pendant l'utilisation d'applications lourdes.

  • Brillance de l'écran inférieure:[ Encouragez les utilisateurs à réduire manuellement la luminosité ou à activer la luminosité automatique (Paramètres > Affichage et luminosité).
  • Activer le mode de faible puissance:[ Suggérer à activer le mode de faible puissance lorsqu'ils s'attendent à une utilisation continue (Paramètres > Batterie). Le système réduira automatiquement l'activité et les performances de fond.
  • Réduisez le taux de rafraîchissement :[ Pour les appareils avec ProMotion (affichage 120Hz), les utilisateurs peuvent limiter le taux de cadre à 60Hz dans Paramètres > Accessibilité > Motion > Limiter le taux de cadre. Les applications peuvent également respecter cela en désactivant les animations 120Hz lorsque ce n'est pas nécessaire.
  • Fermer les applications inutiles: Bien qu'iOS gère efficacement le multitâche, les applications de fond consomment encore certaines ressources.
  • Débranchez les services inutiles:[ Les services Bluetooth, Wi-Fi et emplacement peuvent être désactivés lorsque ce n'est pas nécessaire. Pour l'emplacement, les utilisateurs peuvent définir les permissions d'application à -

Vous pouvez également ajouter un Détection de mode d'alimentation faible[ dans votre application pour réduire automatiquement l'utilisation des ressources (p. ex., qualité vidéo inférieure, synchronisation de pause, réduction de la fréquence des sondages).

Conclusion

En établissant un profil précoce, en utilisant des API à faible rendement énergétique, en minimisant le travail de fond et en respectant les choix de gestion de la puissance des utilisateurs, les développeurs peuvent créer des applications qui offrent d'excellentes expériences d'utilisation continue sans égoutter la batterie.Ces pratiques améliorent la satisfaction des utilisateurs, réduisent la pression et aident les appareils à durer plus longtemps entre les charges. Pour plus de détails, consultez la documentation officielle d'Apple sur Diagnostics énergétiques[ et le ] Cycle de vie de l'application, ainsi que l'API État de la batterie. Pour des pratiques exemplaires plus générales, le Guide d'efficacité énergétique pour les applications iOS demeure une ressource essentielle.