Comment optimiser le développement d'applications

Salut Je m'appelle Andrey, je suis développeur Android chez Genesis Media et je crée des applications pour nos activités médias en Afrique. Le continent est incroyablement cher sur Internet, et les principaux appareils mobiles sont des smartphones Android à faible consommation, donc je fais de mon mieux pour rendre nos produits plus faciles.

Ce texte contient les meilleures pratiques pour optimiser les applications pour les marchés émergents que nous utilisons. Considérez ceci comme un guide pour les développeurs débutants.

Les entreprises souhaitent proposer leur produit à un nouveau public. Par exemple, en Inde, seulement un tiers de la population est connectée à Internet et au Nigeria, la moitié. Un tel potentiel disparaît! Par conséquent, les développeurs de grandes entreprises se concentrent sur l'optimisation des applications pour les marchés émergents.



Les principaux problèmes:

  • périphériques avec une petite quantité de RAM
  • appareils avec petits écrans ou basse résolution
  • internet cher
  • connexion Internet instable
  • anciennes versions de systèmes d'exploitation


Décisions clés


Minimisez la taille de l'application


Dans les marchés où Internet et les appareils sont peu onéreux, la lutte est littéralement de plus de mégaoctets. Que votre application soit téléchargée ou non dépend de la taille. Les développeurs d'Opera sont très fiers que leur application ne prenne que 8 Mo. Afin d'être fier de notre produit, nous avons trouvé sept solutions.

  • Minimisez le nombre de bibliothèques. Au début, nous avons supprimé les bibliothèques supplémentaires, puis avons décidé d'abandonner les bibliothèques tierces en général. Ils simplifient le travail des développeurs, mais pour des raisons pratiques, la connexion d'une bibliothèque entière est déraisonnable. Par conséquent, nous décrivons indépendamment la logique des besoins de chaque projet. Bien sûr, cela prend plus de temps, plus de code, mais cela réduit considérablement la taille de l'application.
  • Ne conservez pas de bibliothèques avec des fonctionnalités similaires dans les dépendances. Lorsque l'utilisation des bibliothèques est inévitable - la création de publicité, par exemple - voyez quelles bibliothèques elles contiennent à l'intérieur. Vous devriez peut-être abandonner votre bien-aimé au profit de celui qui se trouve déjà dans un autre.
  • Utilisez des images claires. Les ressources du module d'application - images et plus - prennent souvent le plus d'espace. Réduisez-les. C'est plus facile que de savoir où rétrécir à partir de maintenant.

Pour ce faire, nous avons commencé à utiliser des images vectorielles - elles se composent de formes géométriques simples, c'est pourquoi elles sont superficiellement compréhensibles et prennent peu de place. Au lieu du package standard de cinq images pour différents formats d'affichage, vous ajoutez un vecteur. Il change de taille sans perte de qualité. Parmi les inconvénients - l'image doit être simple. Vous pouvez dessiner une image complexe dans un vecteur, mais ce n'est pas la meilleure option, car elle pèsera encore beaucoup et se chargera longtemps.

Si l'image est complexe, nous utilisons WebP. Il s'agit d'un format de compression Google qui vous permet de réduire le poids d'une image de près de 10 fois.

Captain's Council: travaillez en tandem avec un designer. Dans un premier temps, créez un produit simple pour qu'il ne soit pas à adapter, techniquement sophistiqué.

  • Obscurcissez le code. J'utilise l'utilitaire Proguard, mais il existe d'autres options. En plus de convertir le code dans un état illisible, il identifie et supprime les ressources inutilisées, l'optimisant ainsi.
  • Utilisez les ressources de la plateforme. Par exemple, Android possède une classe interne d'objets dessinables, qui vous permet de dessiner des images simples à l'intérieur du système sans rien ajouter aux ressources. Définissez la logique de création de l'élément et il sera dessiné seul au moment du chargement de l'interface graphique.
  • Réutilisez les ressources. Par exemple, des images en double de différentes couleurs peuvent être stockées non pas en deux copies, mais en une seule plus un filtre de couleur. À la recherche de telles options d'optimisation, vous passerez du temps, mais cela en vaut la peine afin de maintenir un volume d'application minimal.
  • Utilisez le bundle d'applications , le type d'assembly d'application, lorsque les éléments de chaque utilisateur sont collectés individuellement non pas par le développeur, mais dans PlayMarket. Cela optimise la taille car la plate-forme connaît le type de machine utilisateur et contient une option d'image appropriée. PlayMarket affirme qu'il aide à réduire la taille de l'application de 30%. Convient à ceux qui ne veulent pas s'embêter avec les options précédentes.
  • Optimiser la vitesse d'affichage de l'interface - ceci est pertinent pour un utilisateur avec un matériel faible. Souvent, l'interface utilisateur est imposée dans le fichier xml - c'est pratique et rapide par rapport à la mise en page dans le code. Cela n'a pas toujours un bon effet sur le temps de rendu de l'interface utilisateur, en particulier sur les appareils faibles. Vous pouvez accélérer un peu ce processus si vous configurez la disposition dans le code. Cela vous fera gagner du temps sur le processus de conversion de la mise en page XML en code. Ou vous pouvez utiliser la classe AsyncLayoutInflater pour rendre ce processus asynchrone. Peut-être que la vitesse de rendu globale n'augmentera pas, mais au moins cela rendra l'interface utilisateur plus réactive (moins en retard, lente).


Optimisation de l'utilisation du trafic


L'absence d'Internet n'est pas une erreur, mais l'état de l'application. Et vous devez pouvoir travailler correctement avec lui. L'utilisateur doit avoir accès aux informations - le laisser regarder, lire, montrer au maximum tout ce qui est. Ne le renvoyez pas.

  • Mise en cache des données. Il est très important d'économiser du trafic en Afrique - cela vaut son pesant d'or. Par conséquent, dès que l'utilisateur ouvre le fil d'actualités, toutes les informations doivent être mises en cache. Lorsque Internet est perdu ou qu'une personne quitte, entre dans l'application, le contenu ne sera plus chargé.
  • ETag. Le rechargement des données est une habitude inconsciente de l'utilisateur que vous ne remarquez pas avec l'Internet à faible coût, mais cela coûte cher dans les marchés émergents. ETag logic analyse les données de hachage et met à jour uniquement les informations modifiées, ou envoie une demande «le contenu n'a pas changé», ne pesant pas plus de 1 Ko. Il est conseillé de l'ajouter à la logique de requête, qui peut renvoyer beaucoup de données.
  • Désactivez les images. Ainsi, l'utilisateur lit les nouvelles, mais ne dépense pas de trafic pour télécharger des images. À volonté, il peut les «allumer» d'un simple coup, mais ils ne seront pas automatiquement relevés.


Total


Ce sont les principaux moyens d'aider les utilisateurs à économiser du trafic et de l'espace sur l'appareil. Essayez de ne pas ajouter de services exécutés en arrière-plan à l'application, mais ce n'est qu'après la première assistance d'optimisation pour tous les points précédents. C’est tout. J'espère que le matériel vous a été utile.

Source: https://habr.com/ru/post/fr481378/


All Articles