Ouvrir le menu principal

iGeneration

Recherche

Facebook : le Microsoft Word des temps modernes

Christophe Laporte

mercredi 12 avril 2017 à 09:23 • 47

App Store

Quelle est la pire application disponible sur iOS et qui est particulièrement répandue ? À cette question, on serait tenté de répondre Facebook. Au passage, nombreux sont ceux qui ont constaté une hausse de leur autonomie de leur smartphone en la désinstallant et en « restreignant » à la version mobile. Lorsque cette polémique était intervenue en octobre 2015, le réseau social avait promis de mettre au régime son application iOS.

Le souci, c’est que les régimes, cela ne fonctionne pas toujours. Peut-être qu’entre temps, l’application est devenue plus économe pour la batterie, mais en ce qui concerne son poids c’est une catastrophe. Alexandre Colucci, développeur chez Elgato, a une petite passion dans la vie : analyser le contenu de l’application Facebook à l’aide de l’outil GrandPerspective.

Le développeur a donc comparé la version 87 (la dernière en date) à la version 66 sortie en octobre dernier. À ce rythme, la version 100 devrait être disponible à l’été.

En l’espace de six mois, Facebook pour iOS a pris quasiment 100 Mo. La version 87 pèse sur un iPad Air 253 Mo, soit 88 Mo de plus que la version 66. Le poids de cette application est d’autant plus impressionnant que Facebook utilise l’App Slicing. Autrement dit, elle n’inclut que le code pour marcher sur cet iPad. Le code 32 bits n’est pas présent par exemple. Cet embonpoint a des conséquences. Par exemple, sur un iPhone (cela peut varier d’un opérateur à l’autre), il n’est pas possible de télécharger cette application en 4G. Ce qui est quand même assez dingue pour une app qui occupe la dixième place du classement des applications gratuites les plus téléchargées de l’App Store.

Fatbook....

Alors pourquoi Facebook est devenu si énorme ? Il y a tout d’abord une version majeure entre ces deux versions. La version 66 contenait un binaire monolithique de plus de 100 Mo, comme le montre l’illustration ci-dessous.

Il est à noter que sa taille mannequin n’était pas liée aux éléments graphiques de l’app qui ne pesaient pas plus de 5 Mo dans cette version. On ne peut pas non plus imputer la faute aux fichiers de traduction qui, au final, occupent assez peu de place.

L’application a recours à une foultitude de frameworks. Parmi ceux-là, Alexandre Colucci était étonné de trouver notamment le framework JSC framework, qui pèse à lui seul 3 Mo. À moins qu’il y ait une raison technique, Facebook pouvait tout aussi bien recourir au framework JavaScriptCore, qui est intégré au système depuis iOS 7. Sachant que Facebook requiert au minimum iOS 8, il n’y a semble-t-il pas de contre-indications.

Ce qu’il est intéressant de noter, c’est que 22 versions plus tard, la structure de l’application a beaucoup évolué. La taille du binaire principal est passée de 100 Mo à 19 Mo. Mais on constate que celui-ci est désormais accompagné de deux autres binaires : FBSharedFramework qui pèse 136 Mo et FBNotOnStartupPathFramework qui occupe 26 Mo.

Apparemment, il y a une volonté chez Facebook de rendre son application plus modulaire. Sans doute pour faciliter son développement et on l’imagine afin de pouvoir avancer plus facilement de front avec ses autres projets. Ce qui met par contre en émoi le développeur, c’est que Facebook n’a pas fait beaucoup d’efforts pour rendre son application moins gourmande. Il a trouvé énormément de fichiers dupliqués. Il prend l’exemple du fichier unetshallow_init.pb qui pèse 3,6 Mo et qui est répliqué trois fois.

C’est aussi le cas des différents fichiers contenant les images où l’on trouve un grand nombre d’images qui ont été dupliquées. Au total, selon lui, il y a plus de 40 Mo de données qui sont dupliquées. À l’échelle de l’App Store et vu la popularité de ce réseau social, il ne fait guère de doute qu’avec un peu d’optimisation, il serait possible de faire de sacrées économies de bande passante.

Alors, on serait tenté de penser que Facebook ferait mieux de mettre à jour moins régulièrement son application et de prendre un peu plus son temps pour optimiser son application. Mais c’est sans doute l’un des problèmes de ces mises à jour permanentes. En même temps, même si l’optimisation n’est pas forcément l’objectif numéro un de Facebook, il est intéressant de voir à quel point son application évolue en profondeur du moins dans sa structure.

DO_NOT_USE_OR_YOU_WILL_BE_FIRED

Lors de la publication de son billet consacré à Facebook v87, Alexandre Colucci est revenu sur une découverte qu’il avait faite dans la version 66 et qu’il avait oublié de mentionner. Il a trouvé de nombreux protocoles, méthodes et interfaces avec des descriptions assez explicites :

 @protocol FBDeprecatedAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED 
 @protocol FBLoginFacilitatingAppModule  
 @interface FBTimelineModule : FBNativeAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED 
 @interface FBNotificationsModule : FBNativeAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED 
 @interface FBProductionLockoutModule : FBNativeAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED 
 @interface FBSearchModule : FBNativeAppModule_DO_NOT_USE_OR_YOU_WILL_BE_FIRED 

Ne les utilisez pas ou vous serez viré ! Le message a le mérite d’être clair.

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Prime Day : les derniers bons plans pour équiper sa maison en domotique

11/07/2025 à 20:50

• 14


La Chine s'attaque aux batteries externes de mauvaise qualité, ce qui cause des remous chez les fabricants

11/07/2025 à 20:15

• 14


Les produits Wemo de Belkin sont poussés à la retraite sauf s'ils utilisent HomeKit

11/07/2025 à 19:30

• 5


Prime Day : découvrez les joies de DockKit avec de belles promotions

11/07/2025 à 16:45

• 0


Orange fait des essais de 5G dans la bande des 6 GHz, et les résultats sont intéressants

11/07/2025 à 15:37

• 6


Prime Day : des traqueurs Localiser dès 12 €, des étuis à lunettes, des porte-passeports, des cartes pour le portefeuille, les meilleurs accessoires en promotion

11/07/2025 à 15:10

• 10


Nintendo peut bannir une Switch 2 à cause d'un jeu acheté d'occasion (mais ce n'est pas toujours définitif)

11/07/2025 à 11:31

• 51


France Identité : des correctifs disponibles pour la carte grise et les grands iPhone

11/07/2025 à 10:31

• 14


iPad, MacBook Pro/Air, iPhone 17e : tous les nouveaux produits attendus d’ici le printemps 2026

11/07/2025 à 06:46

• 20


Notre top 5 des accessoires à avoir pendant les vacances (et en promo) !

10/07/2025 à 21:40

• 23


Apple échappe à un procès pour entente illégale sur Apple Pay aux USA

10/07/2025 à 21:15

• 9


Test de la sonnette vidéo G410 d’Aqara : toujours sur piles, mais avec un meilleur angle

10/07/2025 à 20:30

• 7


Une nouvelle fuite présente la possible maquette de l’iPhone 17 Pro noir

10/07/2025 à 20:00

• 78


Samsung aurait lancé la production de l’écran du futur iPhone pliable

10/07/2025 à 14:41

• 9


Guide d'achat : les meilleurs accessoires pour filmer vos vacances avec un iPhone

10/07/2025 à 14:04

• 3


Prime Day : les meilleures manettes pour iPhone sont en promotion, dès 40 €

10/07/2025 à 12:44

• 0