Sobes.tech
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.