Certaines personnes aiment appeler cela la fragmentation, d'autres l'appellent le choix, mais quel que soit leur nom, il existe certainement de nombreux téléphones Android. Créer des applications devant fonctionner avec toutes ces applications n’est pas une tâche facile. Vous avez des configurations matérielles très différentes qui font toute la différence en termes de performances, et même si un fichier apk peut fonctionner sur chacun d'entre eux, il reste le problème de la nécessité de faire fonctionner une application sur des périphériques bas de gamme sans sacrifier les fonctionnalités appareils finaux. Lorsque vous parlez d'une application aussi populaire que Facebook, cela peut rapidement devenir un cauchemar pour ceux qui codifient.
Facebook a montré à tous les utilisateurs de Big Android Meat and Greet une nouvelle solution simple: le composant Device Year Class.
Les développeurs de Facebook décrivent ce nouveau composant logiciel comme suit:
Device Year Class est une bibliothèque Android qui implémente un algorithme simple qui mappe la RAM, les cœurs de processeur et la vitesse d'horloge d'un périphérique sur l'année où cette combinaison de spécifications était considérée comme haut de gamme. Cela permet au développeur de modifier facilement le comportement de l'application en fonction des capacités du matériel du téléphone.
La bibliothèque ne modifie aucun comportement dans l'application. Il renvoie une valeur (exprimée en année) qui est stockée dans le code chaque fois qu'un développeur doit modifier le fonctionnement d'une application pour adapter l'expérience à un type de matériel particulier. Cela signifie qu'un développeur peut écrire une application avec des animations et des transitions sophistiquées qui fonctionneront comme prévu lors de l'exécution sur quelque chose comme un Galaxy Note 4, mais pas utiliser le miracle quand l'application fonctionne sur quelque chose comme une Moto E. Comme vous le pouvez imaginez, ce type de contrôle sur une application telle que Facebook - installée sur des millions et des millions de téléphones différents - peut et va permettre une meilleure expérience pour à peu près tout le monde. Et c'est facile à mettre en œuvre. De la documentation sur GitHub:
if (year >= 2013) { // Do advanced animation } else if (year > 2010) { // Do simple animation } else { // Phone too slow, don't do any animations }
Mieux encore, la bibliothèque est à source ouverte sous la licence logicielle BSD (la même licence utilisée par Google pour le code source Android) et est disponible gratuitement pour tous les développeurs.
Nous savons que ce n'est pas magique et il est probable que la plupart des développeurs travaillant sur de grands projets disposent d'une méthode pour gérer différentes configurations matérielles. La classe de matériel de l'appareil fournit une solution simple et "élégante" à un gros problème, que tout le monde peut utiliser.
Page GitHub du périphérique année de classe