https://kotlinlang.org logo
Title
b

Baudouin

04/10/2023, 11:02 AM
Hello, Je suis nouveau ici et sur Kotlin aussi (pour android avec Jetpack compose dont j'apprend en lisant les cours de developer.google). En deux seconde je viens du dev web (JS, Vue et PHP principalement). J'ai une petite question à propos de jetpack compose : Je suis en train de dev une app avec un DataStore et un Viewmodel. Seulement à l'ouverture de l’application sur mon HomeScreen j'ai un problème car quand le composable est initialisé, les données du datastore géré par le viewmodel ne sont pas encore disponibles. Comment ça se fait et quelle serait la solution ? Et elle le sont quelques millisecondes plus tard. Sauf que j'ai un variable nullable et donc malgré un if-else ça fait tout planter. Si quelqu'un à une petite idée je suis preneur 😉
f

florent

04/10/2023, 1:31 PM
Je dirais d'initialiser avec du vide et remplacer quand les données son disponible. En général on utilise une
sealed class
pour ce genre d'état
b

Baudouin

04/10/2023, 4:48 PM
Top merci je vais regarder ça ..
Et la
sealed class
c'est pour remplacer la
data class
de mon UiState ?
f

florent

04/10/2023, 4:52 PM
Ton UiState devient une sealed class dont l'un des états est ton ancienne data class
b

Baudouin

04/10/2023, 4:53 PM
Ah oui okok je vois, merci bcp !
f

florent

04/10/2023, 5:01 PM
T'as du voir sur internet, mais un des gros avantage c'est que après tu peux faire un
when (uiState) {}
(uiState étant dans ce cas une instance d'un UiState) et ce qui permet à la machine de te suggérer les états a supporter