Les apps les plus populaires ont un problème d'obésité
En l'espace de quatre ans, le poids cumulé des 10 apps iOS les plus installés aux États-Unis a été multiplié par 11. Il est passé de seulement 164 Mo à pas moins de 1,8 Go. Depuis 2013, SensorTower a observé cette évolution qui voit des apps devenir sans cesse plus obèses et où même les meilleurs élèves — Spotify et Messenger — sont devenus six fois plus lourds sur cette période !
Le champion dans cette progression est Snapchat, 51 fois plus gros qu'à l'origine (203 Mo contre 4 Mo), suivi par Uber (22x) ou encore Gmail (20x). L'analyse porte sur le poids de la partie exécutable de l'application, pas sur ses dépendances ou les contenus qu'elle peut encore télécharger par la suite.
Le plus gros du lot reste néanmoins Facebook avec 338 Mo sur la balance, alors même qu'il utilise la technique de l'app slicing d'Apple, où ne sont téléchargées que les ressources nécessaires à un iPhone ou un iPad (lire Facebook : le Microsoft Word des temps modernes. SensorTower fait remarquer que la bride a été lâchée en 2015 lorsqu'Apple a passé de 2 à 4 Go le poids maximal autorisé pour une app et le phénomène s'est accru après iOS 10.
Facebook, à travers son app principale ainsi qu'avec Messenger et Instagram est bien représenté dans cette liste. De même que Google grâce à Gmail, Maps et YouTube. 6 de ces 10 apps viennent de chez eux. Deux facteurs peuvent expliquer cette course au poids : l'ajout continuel de fonctions et le peu d'efforts consentis pour optimiser le code.
Pourquoi se lancer dans de tels chantiers de nettoyage du code alors que les iPhone finissent toujours par augmenter leur capacité de stockage minimale et qu'ils gagnent en puissance de manière franche, gommant ainsi les possibles effets de lenteur de ces mastodontes.
iOS 11 contient plusieurs nouvelles options pour limiter le poids de ces apps sur votre espace de stockage. Toutefois ces réglages visent avant tout les logiciels dont on se sert peu, pas ceux que l'on utilise tous les jours.
Dans la version révisée, le mois dernier, de ses guidelines pour l'App Store, Apple demande aussi aux éditeurs de nettoyer leurs apps de tout code et frameworks qui n'ont plus lieu d'être, parce que dépassés ou rendus caducs par ses soins. À voir si cela peut avoir un quelconque effet et si Facebook et Google auront envie de faire le moindre effort.
Il est (très très très) loin le temps où on apprenait à coder correctement...
@Pyjamane
Si j'étais toi, j'irai directement me pointer au bureau de Facebook pour leur donner des conseils de codage… Ils ont beaucoup à apprendre de toi !
On voit bien que tu ne suis pas l'actualité de l'enseignement dans les écoles et universités, toi........
A-t-on jamais appris à coder correctement ? ;-)
On ne peut pas dire que le problème soit si nouveau ni que l'on ait tiré un quelconque enseignement de ce qui s'est passé sur PC (tous systèmes confondus mais certaines plates-formes sont pires que d'autres).
On reproduit le même schéma d'évolution : il y a plusieurs axes d'optimisation mais on profite en général de l'augmentation : de la capacité de stockage, de la RAM, de la puissance CPU, de la puissance GPU, pour masquer les piètres performances et ajouter de nouvelles fonctionnalités plus ou moins utiles.
J'aimerais bien que l'on fasse ce travail mais pratiquement aucune société qui produit des logiciels ne le fait.
@bompi
"A-t-on jamais appris à coder correctement ? ;-)"
Je pense quand même que l'avènement de l'iPhone 3G et de sa boutique d'applications a sérieusement mis un coup de fouet aux bonnes pratiques de développement … Bon, on voit que ça se perd.
Moais, y a ça, y a les "methodologies" a la c@#$ qui font perdre du temps et generent de la paprasserie... et puis y a les ingenieurs qui sont formés a programmer des systemes embarqués en temps reel, des serveurs de calcul ou de telecom...
Apres il serait interressant de savoir dans quel langage les app grassouillettes: Swift?
@Pyjamane
Ils (les développeurs) doivent intégrer des bibliothèques entières pour utiliser 1 fonctionnalité. Plusieurs bibliothèques pour d'autres fonctionnalités. Et ça grossit, d'aérophagie en aérophagie, jusqu'à n'en plus finir
Mais n'ont pas aussi intérêt à mettre des ressources dans l'app plutot que de les stocker et les renvoyer à chaque chargement/initialisation de l'app.
Sur une application comme fb cela doit générer pas mal d'économies donc aucun intérêt à le faire.
@Mathias10
Il y a certes des ressources, mais une analyse du contenu de l'app montre bien que la majorité est composé de code : le binaire et des frameworks, qui ne peuvent pas être téléchargés en dehors de toutes façons (règles de l'app store).
Cet article montre un peu certaines absurdités : http://blog.timac.org/?p=1707
qui certes ont été corrigées (surtout les duplications), mais ça n'empêche qu'il a fallu que les gens commencent à en parler pour qu'il se passe quelque chose.
D'un autre côté Apple devrait vraiment se pencher sur la question des delta updates, parce qu'avec des applications qui pèsent 399Mo (Facebook 97.0) et qui sont mises à jour 1 fois par semaine alors qu'il ne doit pas y avoir grand chose qui change, c'est un immense gâchis de bande passante. Donc mieux que de se dire ecolo, ils le seraient vraiment en faisant ce changement.
@iGeek07
T'es au courant que les devs ont la possibilité de ne mettre à jour qu'une partie de leur app pour éviter que ce soir trop lourd? C'est la fautes des devs, pas d'Apple...
@fousfous
Non je ne suis pas au courant, avez vous un lien vers une page de documentation d'Apple qui explique ça ?
@fousfous :
T'es au courant que d'autres entreprises ont réussi à optimiser les mises à jour pour que les delta updates soient automatiques, très efficaces et sans intervention du développeur ? (Google Play Store)
@sachouba :
Les delta updates sont automatiques sur l'App Store depuis 5 ans...
@junec
Faux. Pour l'OS, pas pour les apps tierces. On voit bien la différence avec Android, d'ailleurs.
Et si...
"Starting with iOS 6, the app store will automatically produce an update package for all new versions of apps submitted to the store. When generating the update package, the app store compares one or more prior versions of your app to the new version and creates an optimized package for each that contains only the content that has changed between versions of your app, excluding any content that did not change. This comparison looks at everything in the application bundle, including the application executable, nibs, localizations, image files, video files, audio files, text files, and files containing data in a custom format."
"For devices running iOS 7.1 and later, the update package may include only the differences between the old and new versions of a changed file instead of the full file. This may significantly reduce the size of the update package in the case where only a small part of a large file changes, but will increase the update's installation time on the device."
(Technical Q&A QA1779)
La taille affichée ne correspond pas en revanche à la taille réelle de la mise à jour, mais à la taille maximale de la mise à jour, d'où la confusion de la plupart des gens ici. De plus, si le téléchargement est plus rapide qu'avant, l'installation, elle, est plus longue.
@junec
Merci pour la précision et le lien !
Du coup c'est la présentation de l'AppStore qui laisse croire que la MAJ de Facebook prendra 399Mo qui est à mettre en cause pour la confusion general qui règne sur ce sujet ici.
Je suis bien d'accord que les apps dites "populaire" sont trop lourde, j'ai une mauvaise connexion chez moi et chaque mise à jour de ces apps prend beaucoup de temps parce qu'elles font chacune 200 ou 300mo...
Bah ça confirme que depuis un certain temps les devs ont arrêté de faire leurs boulot...
@ fousfous
Oui bien sur c'est encore la faute des devs...
Si on leur donnait les moyens, tu aurais une version optimisée a chaque fois.
Modifier une version existante est toujours plus rapide, tu as deja une version stable, alors que si tu réecris a chaque fois pour profiter des nouvelles API de l'OS, tu vas introduire des bugs, ca prend plus longtemps, et donc ca coute plus cher.
Bref, la décision quand au stratégie de dev est au niveau de la direction, pas au niveau des devs.
Quand tu as un budget, une deadline, tu ne fais pas ce que tu veux.
C'est comme Messenger, qu'est ce que j'aimerais bien avoir la version Lite
sans les truc "snapchat" et autres truc pour ados boutonneux ^.^
Ça fait un bail que j'ai dégagé l'app fcbk. J'utilise la version Web et ça me va.
et aussi le nombre d'applications qui n'indiquent même plus ce qu'il y a dans la mise a jour, juste un message général qui est le même a chaque update -_-
@heero :
Ça devient lassant sérieux. J'espère qu'Apple va changer ça
@Guillaume06
Ils ne peuvent pas t'annoncer les nouveautés puisqu'ils sont passés en déploiement continu.
https://en.wikipedia.org/wiki/Continuous_delivery
En gros, les nouvelles fonctionnalités et les corrections de bugs sont envoyées sur tous les téléphones à chaque mise à jour hebdomadaire (parfois même avant d'être terminées) et testées sur des portions réduites d'utilisateurs (A/B testing). Puis, elles sont activées progressivement pour l'ensemble des utilisateurs. Le nouveau code qui arrive avec chaque mise à jour peut donc correspondre à une modification activée des semaines ou des mois plus tard sur ton téléphone.
c'est pour ca que personnelement je suis passé depuis pas mal de temps aux version mobile ou webapp pour Facebook/Youtube/Gmail.
l'ergonomie est tres bonne, et une fois le raccourci sur la page d'acceuil (le logo etant le meme) la difference est assez minime finalement (apres j'ai un usage assez legere de ces app aussi)
mais par contre le poids est diviser par 1000 en gros vu que ces raccourci ne pese que quelques kilo :)
vous oubliez le cache du runtime dans safari ;)
effectivement ;-)
mais le cache de safari, ca se vide de temps en temps !!
alors que le poids de toute ses apps...
c'est marrant dans iOS 11 apple a prevu une solution pour supprimer automatiquement les app sans perdre les données utilisateurs, alors que ca fait des années que beaucoup reclament l'inverse !!! (pouvoir supprimer les données d'un app sans supprimer l'app elle meme ;-) )
"pouvoir supprimer les données d'un app sans supprimer l'app elle meme"
cela existe déjà
mais il faut tout de même que le développeur mette en place les informations nécessaires pour qu'ios puisse le faire.
Vous le voyez dans gestion du stockage quelles sont les applications qui ont bien fait leur travail.
oui ca existe au sein de l'appli effectivement.
mais pas au sein d'iOS, ou alors je ne l'ai jamais vu ! :)
@romainB84
Ça existe depuis très longtemps dans réglage.
J'aime bien les gens qui se plaignent du manque de fonctions alors que ces fonctions sont accessibles facilement...
@fousfous
On peut supprimer les données d'une app sans la supprimer elle-même ? Directement depuis ios ? Première nouvelle. Certaines apps le proposent mais pas le système directement.
@shaba
ah bah je suis preneur de la methodo parce que je ne la connais pas :-)
@fousfous
Avez vous au moins une application qui implémente ça (vider le cache depuis les réglages) à donner en exemple ?
Je pensais à : Réglages / Général / Stockage Local et à Saint-Cloud..heu iCloud / Gérer le Stockage:
Il me semblait qu'il y avait une API depuis ios 10 qui permet sI le développeur a pris le temps au sein de son application de bien faire les choses et de le déclarer de supprimer les documents d'ici.
Parmi mes apps, je ne vois que Musique et Podcast (la bibliothèque audio je suppose) qui permet cela.
Je confonds avec autre chose probablement.
il me semblait :-)
j'avoue que ca me disait rien du tout !! :-)
mais attendons que notre "cher" @foufou nous montre comment on fait.
personnelement je suis vraiment demandeur (surtout si comme il le dit ca existe depuis des année, ca va etre tres simple pour lui de nous le montrer)
@oomu
C'est d'autant plus dommage que les applications d'Apple montrent la voie :
Une liste des choses téléchargées pour les applications de consommation de musique ou vidéo.
Pour les autres applications, il me semble que les développeurs doivent déjà être explicite sur ce qui fait parti des "documents" de l'application, à ne pas toucher, et ce qui fait parti du "cache" qui peut être purgé par iOS à tout moment pour faire de la place.
@romainB84
Quand vous parlez de Webapp, c'est bien le lien de l'app qu'on peut mettre sur le springboard via le menu Partager de Safari (Et ces "Webapp" s'ouvrent donc dans Safari???
Si c'est bien de ça dont vous parlez, je trouve justement dommage qu'on ne puisse pas masquer la barre d'adresse notamment...
il faut que le site web ai ete prevu pour (c'est juste une petite ligne a mettre dans le header, ca coute rien, mais c'est vrai que tout les web dev ne le font pas :)
@romainB84
Ah oui merci je viens de tester avec macg ?
Téléchargement Snapchat : 203 Mo sur l'app store, 54 Mo sur le Play Store.
Téléchargement Facebook : 419 Mo sur l'app store, 77 Mo sur le PlayStore.
Y'a pas comme un problème là ?
@Maître Folace
Quand tu vois la différence de qualité entre les versions iOS et Android de Snapchat, je pense que tout le monde prend avec plaisir les 150 Mo en plus
@Dodo8 :
En réalité c'est valable pour la vaste majorité des apps les plus populaires du Play Store et de l'App Store, même à qualité égale.
Je serais curieux de savoir d'où provient ce surpoids...
Après je remarque d'après les missions que j'effectue que l'optimisation n'est plus de mise en effet : les développeurs n'optimisent par leur code et ajoutent allègrement des librairies/framework sans consideration de performances.
ha les joies des frameworks multi-plateformes et simplifiant le proto-typage du logiciel et sa logique métier
et puis les logiques de développement où on a bien tout compartimenté mais dupliqué en masse chaque sous-dépendance parce que le process de compilation reprend chaque brique et chaque dépendance en respectant bien la séparation. Simplifiant développement, test, QA et mise en prod.
le résultat est que tout ce qui améliore la qualité de vie de l'ingénieur diminue la qualité de vie de l'utilisateur.
(mais entre deux ivrognes de disputant, je suis toujours pour l'ingénieur)
bon après, c'est pas toujours grave.
-
et par pitié et Junon, arrêtez avec vos "l'optimisation n'est plus de mise" !
C'est un propos que j'entendais déjà dans les années fin 80s ! rAAAH!
(et je suppose que déjà un barbu en 67 devait se plaindre qu'on optimisait plus les recablages et cartes perforés comme avant, snirrrfl)
C'est un MYTHE : l'industrie doit composer entre vitesse de développement, coûts et ZoptimiZation.
Vous pensez vraiment que COBOL (très populaire y a qq décennies) ou Visual Basic (populaire dans les années 9..burp...90s...) c'était du ZoptimiZé ?
allons.
Bon sur ce, retournons faire des démos en 4K de code binaire sur arduino.
J'ai également supprimé l'application Facebook avec notamment un avantage, celui d'afficher les articles du flux d'actualité directement dans Safari avec le mode lecteur. Les mises à jour continuelles me devenaient insupportables.
Je me passe également de l'application YouTube, depuis que j'ai réalisé que le mode paysage est possible sur la version Web, ce qui n'est pas le cas dans l'application ?
Quand je vois le nombre de personnes qui râlent sur l'App Store, à chaque mise à jour de Facebook – à cause du poids de l'application et de l'inutilité apparente de la mise à jour – je me demande vraiment pourquoi ils continuent ainsi… Les développeurs ne se donnent même pas la peine de détailler les changements contrairement à la plupart des applications.
@alitaliano
La qualité de la vidéo n'est pas juste horrible sur la version web de YouTube ? (Chez moi c'est du 360p sans pouvoir changer)
Sur mon IPhone : 183 applis (ben oui...)
MacGe number 5 avec 238 Mo tout de même !
Hum hum :)
@Applesoft
Tu desinstalle et réinstalle l'appli tu vas voir quelle s'allège d'un coup.
J'espère qu'avec iOS 11 on aura un moyen de supprimer directement le cache d'une appli sans avoir à faire la bidouille sois meme.
Pages