La recomposition expliquée
Découvrez comment Compose met à jour l'interface.
La recomposition expliquée est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.
Qu’est-ce que la recomposition ?
La recomposition consiste pour Compose à réexécuter vos fonctions composables afin de mettre à jour l’interface lorsque l’état qu’elles lisent change. C’est ainsi que l’écran reste synchronisé avec vos données.
Déclenchée par les lectures de l’état
Compose suit les fonctions composables qui lisent chaque état. Lorsqu’une valeur d’état change, seules les fonctions composables qui la lisaient sont planifiées pour être recomposées.
Intelligente et sélective
La recomposition est sélective : Compose tente de réexécuter le moins de code possible. Une modification d’une partie de l’état ne redessine pas tout l’écran, mais uniquement les parties qui en dépendent.
Ignorer l’exécution
Si les entrées d’une fonction composable n’ont pas changé, Compose peut ignorer complètement sa réexécution. La recomposition reste ainsi peu coûteuse, même sur des écrans complexes.
Les fonctions composables sont souvent exécutées
Comme la recomposition peut se produire fréquemment et dans n’importe quel ordre, vos fonctions composables doivent pouvoir être réexécutées sans risque. Les appeler plusieurs fois doit produire la même interface pour un même état.
Éviter les effets secondaires
N’effectuez pas d’effets secondaires (appels réseau, écriture de fichiers, modification de variables partagées) directement dans le corps d’une fonction composable. Ils pourraient être exécutés à chaque recomposition. Utilisez plutôt l’état et les interfaces d’effets.
// BAD: runs on every recomposition
@Composable
fun Bad() {
saveToDatabase()
Text("Hi")
}Indépendance par rapport à l’ordre
Vous ne pouvez pas compter sur l’exécution des fonctions composables dans un ordre précis ou sur un thread précis. Traitez chaque appel comme indépendant. Cette liberté permet à Compose d’optimiser l’exécution de manière très poussée.
Lire ou ne pas lire
Seules les fonctions composables qui lisent un état sont recomposées lorsque celui-ci change. Si un Text ne lit jamais count, la modification de count le laisse inchangé.
@Composable
fun Demo() {
var count by remember { mutableStateOf(0) }
Text("Static") // never recomposes from count
Text("Count: $count") // recomposes when count changes
Button(onClick = { count++ }) { Text("+") }
}Boucles de recomposition à éviter
Écrire dans l’état pendant la composition (et non dans un événement) peut provoquer une boucle de recomposition infinie. Mettez à jour l’état uniquement depuis des rappels tels que onClick, jamais directement dans le corps.
Cela semble automatique
De votre point de vue, la recomposition est automatique. Vous déclarez l’interface comme une fonction de l’état, vous modifiez l’état dans des rappels, et Compose se charge de réexécuter les fonctions composables appropriées.
Mettre tout en pratique
Ce compteur illustre la recomposition : une pression modifie count, Compose réexécute le Text qui le lit, et le nouveau nombre apparaît.
@Composable
fun Counter() {
var count by remember { mutableStateOf(0) }
Button(onClick = { count++ }) {
Text(text = "Count: $count")
}
}Vérification rapide
Quand Compose recompose-t-il une fonction composable ?
Récapitulatif
Principes essentiels de la recomposition :
- Les changements d’état déclenchent la réexécution des fonctions composables qui lisent cet état.
- La recomposition est sélective et peut ignorer les fonctions composables inchangées.
- Les fonctions composables doivent être dépourvues d’effets secondaires et pouvoir être réexécutées sans risque dans n’importe quel ordre.
Questions Fréquemment Posées
La leçon « La recomposition expliquée » est-elle gratuite ?
Oui — le texte complet de « La recomposition expliquée » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « La recomposition expliquée » ?
Découvrez comment Compose met à jour l'interface. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Android Academy ?
Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « La recomposition expliquée » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?
Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- État avec remember et mutableStateOf
- La recomposition expliquée
- Remontée de l'état
- rememberSaveable