Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, na czym polega wzorzec architektoniczny MVVM i jak jest stosowany w tworzeniu interfejsów?

sobes.tech AI

Odpowiedź od AI

MVVM (Model-View-ViewModel) — wzorzec architektoniczny szeroko stosowany do tworzenia interfejsów użytkownika, szczególnie w aplikacjach z wiązaniem danych.

  • Model — zawiera dane i logikę biznesową.
  • View — odpowiada za wyświetlanie interfejsu i interakcję z użytkownikiem.
  • ViewModel — pośrednik między Modelem a Widokiem, zawiera logikę prezentacji i stan interfejsu.

Na iOS MVVM pomaga oddzielić logikę UI od logiki biznesowej, poprawiając testowalność i utrzymanie kodu. ViewModel dostarcza dane i polecenia dla View, a View subskrybuje zmiany przez wiązania lub obserwatorów.

Przykład (uproszczony):

class UserViewModel {
    var userName: String = "" {
        didSet {
            // powiadomienie View o zmianie
        }
    }
    func fetchUser() {
        // ładowanie danych z Modelu
        userName = "Ivan"
    }
}

class UserViewController: UIViewController {
    var viewModel = UserViewModel()
    @IBOutlet weak var nameLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        viewModel.fetchUser()
        nameLabel.text = viewModel.userName
    }
}

W ten sposób MVVM upraszcza zarządzanie stanem UI i oddziela logikę od prezentacji.