mobile-best-practice/chapters/MBP_013_fr.md

40 lines
2.5 KiB
Markdown
Raw Normal View History

## Utiliser le chargement paresseux
### Identifiants
// TODO
### Catégories
| Cycle de vie | Tiers | Responsable |
|:---------:|:----:|:----:|
| 3. Réalisation (fabrication / développement) | Réseau | UX/UI Designer |
### Indications
| Degré de priorité | Mise en oeuvre | Impact écologique |
|:-------------------:|:-------------------------:|:---------------------:|
| 4 | 4 | 5 |
|Ressources Economisées |
|:----------------------------------------------------------:|
| Processeur / Réseau |
### Description
Lorsquune personne ne consulte pas la totalité dun écran scrollable, pour éviter de charger toutes les ressources situées en dehors de la zone visible à l'écran, il est possible d'utiliser une [RecyclerView](https://developer.android.com/develop/ui/views/layout/recyclerview) (UI Toolkit original) ou un [Lazy layout](https://developer.android.com/jetpack/compose/lists#lazy) comme `LazyColumn` (Jetpack Compose). En effet, ces composants appliquent la technique du chargement paresseux (lazy loading) qui consiste à ne charger un élément que lorsque son emplacement devient visible à lécran.
### Anti-pattern
#### Ne pas imbriquer une liste au chargement paresseux au sein d'un layout défilant dans le même sens
Avec le UI Toolkit original, il est important de ne pas envelopper une `RecyclerView` au sein d'un layout de type `NestedScrollView` scrollant dans la même direction. En effet, ce dernier ayant besoin de connaitre ses dimensions pour être rendu à l'écran, va forcer la mesure de tous ses enfants, et donc le rendu de tous les enfants de la RecyclerView. L'avantage du chargement paresseux de la RecyclerView est alors perdu. Dans cette situation, il est préférable de considérer l'ensemble de la vue comme une `RecyclerView` pouvant accueillir différent type d'éléments.
Pour la même raison, avec Jetpack Compose, il ne faut pas envelopper un lazy layout au sein d'un layout standard scrollable dans la même direction. La bonne pratique a appliqué dans cette situation est documentée [ici](https://developer.android.com/jetpack/compose/lists#avoid-nesting-scrollable).
### Principe de validation
2024-02-09 09:24:42 +00:00
| Le nombre ... | est inférieur ou égal à |
|-------------------------------------------------------------|:-----------------------:|
| d'écrans défilables n'utilisant pas le chargement paresseux | 0 |