Junior — Middle
Hogyan valósítsuk meg az MVVM mintát olyan alkalmazásokban, amelyek Jetpack Compose-t használnak a UI-hoz
sobes.tech MI
Válasz az MI-től
A Jetpack Compose-ban az MVVM minta a következőképpen valósul meg:
- Model — üzleti logika és adatok.
- ViewModel — tárolja a UI állapotát és kezeli az interakciós logikát.
- View (Compose UI) — megjeleníti az adatokat és reagál az állapotváltozásokra.
Példa:
class MyViewModel : ViewModel() {
// UI állapot, például egy szövegmező
var text by mutableStateOf("")
private set
fun onTextChanged(newText: String) {
text = newText
}
}
@Composable
fun MyScreen(viewModel: MyViewModel = viewModel()) {
val text = viewModel.text
TextField(
value = text,
onValueChange = { viewModel.onTextChanged(it) },
label = { Text("Írjon be szöveget") }
)
}
Ebben a példában a ViewModel tartalmazza az állapotot és a módosítására szolgáló metódusokat. A Compose UI az mutableStateOf-on keresztül feliratkozik az állapotra, és automatikusan frissül a változásokkor.
Ez a megközelítés biztosítja a felelősségek tiszta szétválasztását és megkönnyíti a tesztelést.