DEMEY Fanny 0cab6b3d21 | ||
---|---|---|
chapters | ||
.gitignore | ||
CONTRIBUTING.md | ||
README.md |
README.md
Bonne pratiques d'écoconception appliqué au mobile
Contexte
L'objectif de ce document est de fournir un référentiel d'écoconception adapté au mobile. L'application des bonnes pratiques ci-dessous ont toutes un but commun : prolonger la durée de vie des terminaux des utilisateurs et utilisatrices.
Les besoins
Étant donné les évolutions continues du mobile, ce référentiel a besoin de régulièrement être mis à jour. Toute proposition ou idée d'amélioration, de modification ou de suppression est bienvenue.
Comment contribuer ?
N'hésitez pas à lire le guide des contributeurs.
La liste des Bonnes Pratiques
-
Optimiser la récupération en fonction du cycle de vie de l'application
-
Libérer la mémoire des traitements consommateurs en fonction de l'état de l'application
-
Déployer un Android App Bundle (AAB) plutôt qu'un APK // TODO a reformuler
-
Ne pas recharger inutilement l'ensemble du contenu d'une liste si seulement une partie a changé
-
Optimiser le chargement paresseux d'un écran complexe comportant des listes imbriquées
-
Utiliser une bibliothèque que si celle-ci est réellement indispensable
-
Mettre en cache des données qui coutent cher à instancier ou qui sont fréquemment consultées
-
Concevoir et manipuler la base de données SQLite de manière optimale
-
Assurer la compatibilité avec les plus anciens appareils du parc
-
Éviter les traitements trop complexes sur des données provenant d'un serveur
-
Supprimer les traductions non utilisées au sein des bibliothèques tierces (seulement pour les APK)
-
avoriser les polices standards ou utiliser les "Downloadable font"
-
Utiliser la version la plus récente du langage et du SDK Android
-
Éviter la lecture et le chargement automatique des vidéos et des sons
-
// TODO : à écrire // MAIN/IO thread ? // Notifications // ABI ?? // Feature play store // Utiliser correctement implementation testImplementation debugImplementation pour ne pas packager des librairies utilisées uniquement pour les tests ou le debug // Reduce cost of inflation (ex ConstraintLayout instead of nested LinearLayout) https://developer.android.com/topic/performance/vitals/render#recyclerview_too_much_inflation_or_create_is_taking_too_long If your view types look good, look at reducing the cost of your inflation. Reducing unnecessary container and structural views can help. Consider building itemViews with ConstraintLayout, which can help reduce structural views.
// TODO pas encore fait mais applicable au mobile
- Utiliser la délégation d'évènements
- Optimiser les PDF // proposer le téléchargement de PDF plutôt que d'inclure un viewer de PDF (=> lib en moins, visibilité de toute façon inadaptée au mobile, peu accessible, personnes ont déjà une app permettant de lire les PDF)
- Adapter les sons/vidéo aux contextes d'écoute // et 114
- Mettre en place une politique d'expiration et suppression des données
- Limiter le recours aux canvas
- Coroutines / Scope / Lifecycle / annulation de traitement // https://developer.android.com/topic/libraries/architecture/coroutines
- Préférer la pagination au défilement infini
Licence
Les sources et contenus de ce projet sont protégés