Suivez-nous

iOS

iOS 9, les apps au régime sec

neilime

Publié le

 

Par

dsc00764-640x427.jpg

Lors de la présentation des nouveautés d’iOS 9 lundi, on a appris, très rapidement, que le système mobile pommé allait maigrir très fort : les mises à jour qui atteignaient presque les 5 Go sous iOS 8 n’allaient désormais plus peser qu’un peu plus d’1 Go.

Mais, ce régime minceur concerne aussi les applications : au fil des années, Apple a multiplié les éléments embarqués dans les applis. D’abord les images au format 2x pour les écrans Retina, puis au format 3x pour l’iPhone 6 et l’iPad, mais également les binaires adaptés au 32 ou au 64 bits en fonction du processeur de l’iPhone ou de l’iPad, sans oublier les récents éléments Metal qui viennent, depuis l’année dernière, charger encore plus la barque.

Avec iOS 9, Apple a décidé d’arrêter l’inflation et de proposer des applications adaptées au profil du téléphone ou de la tablette où l’application sera utilisée… et pas moins de trois mécanismes vont entrer en jeu.

D’abord, App Slicing va permettre de ne télécharger de l’App Store que les éléments nécessaires au fonctionnement de l’application. Ainsi pour un iPhone 5C dont la carte graphique ne supporte pas Metal, qui n’a besoin que des graphiques au format 2x et dont le processeur est 32 bits, tout le superflu ne sera pas téléchargé, ce qui engendre une économie non négligeable de bande passante évidemment, mais un gros gain de place sur le téléphone doté de 8 ou 16 Go d’espace de stockage.

Cette nouveauté nécessitera un petit travail côté développeur pour classer les éléments avant la compilation, mais ne changera rien au processus de téléversement de l’application vers les serveurs d’Apple.

Ensuite, deuxième levier, les ressources à la demande (On-Demand Resources) permettront de laisser une partie des éléments de l’application sur les serveurs d’Apple, par exemple pour les jeux dont seuls les premiers niveaux seront téléchargés au début. Ainsi pour un jeu, Apple conseille de garder sur l’iPhone ou l’iPad du joueur, seulement le niveau en cours de jeu et le suivant, mais pas les anciens déjà passés, ni ceux qui viendront après le suivant immédiat.

Le principe marche donc dans les deux sens : les niveaux déjà passés par le joueur, ou un tutoriel utilisé seulement à la première ouverture de l’application, peuvent être effacés une fois qu’ils ont été utilisés… avec toujours la possibilité de les télécharger de nouveau si besoin.

De nombreux éléments peuvent être marqués comme ressource à la demande : les images bien sûr, les médias en général, mais aussi les scènes, textures ou particules SpriteKit, les shaders OpenGL ainsi que les fichiers de données. Les binaires sont en revanche exclus de cette liste.

Enfin, dernier moyen de faire baisser le poids des apps, Apple propose Bitcode qui impose au développeur de ne pas téléverser son application compilée sur les serveurs d’Apple, mais une version intermédiaire qui sera compilée à la demande en fonction du processeur de l’iPhone ou de l’iPad.

Ainsi, l’application compilée juste à temps bénéficiera tout le temps de la dernière version du compilateur et plus seulement des optimisations disponibles lors de la compilation sur le poste du développeur avant soumission. En espérant que des problèmes de compilation n’émergeront pas quand les applications vieilliront sans être mises à jour alors que le compilateur, lui, continuera d’évoluer avec les versions d’iOS.

Source ArsTechnica 

À lire sur le même sujet :
83989
84013
84009
84002