Sobes.tech
Junior — Middle

Comment la fonctionnalité de l'annotation @Restartable est-elle implémentée dans Jetpack Compose et quelle est sa finalité?

sobes.tech IA

Réponse de l'IA

L’annotation @Restartable dans Jetpack Compose est utilisée pour créer des effets qui se relancent automatiquement lorsque les paramètres clés changent. Cela facilite la gestion du cycle de vie des effets, tels que les coroutines ou les abonnements, qui doivent être mis à jour lorsque les données d’entrée changent.

Objectif :

  • Permet de lancer et d’annuler des effets secondaires lors du changement de dépendances.
  • Assure le redémarrage automatique de l’effet sans avoir besoin de suivre manuellement les changements.

Exemple d’utilisation :

@Composable
fun MyComposable(userId: String) {
    @Restartable
    fun loadUserData() {
        // Se lance à chaque changement de userId
        LaunchedEffect(userId) {
            val data = repository.getUserData(userId)
            // mise à jour de l’état
        }
    }

    loadUserData()
}

Dans cet exemple, lorsque userId change, l’effet de chargement des données se relancera automatiquement, ce qui simplifie le code et le rend plus déclaratif.