Sobes.tech
Junior — Middle

Můžete vysvětlit, co je architektonický vzor MVVM a jak se používá při vývoji rozhraní?

sobes.tech AI

Odpověď od AI

MVVM (Model-View-ViewModel) — široce používaný architektonický vzor pro vývoj uživatelských rozhraní, zejména v aplikacích s datovým vazbou.

  • Model — obsahuje data a obchodní logiku.
  • View — odpovídá za zobrazení rozhraní a interakci s uživatelem.
  • ViewModel — prostředník mezi Model a View, obsahuje logiku prezentace a stav rozhraní.

Na iOS pomáhá MVVM oddělit logiku UI od obchodní logiky, čímž zlepšuje testovatelnost a údržbu kódu. ViewModel poskytuje data a příkazy pro View, a View se přihlašuje ke změnám přes vazby nebo pozorovatele.

Příklad (zjednodušený):

class UserViewModel {
    var userName: String = "" {
        didSet {
            // oznámení View o změně
        }
    }
    func fetchUser() {
        // načtení dat 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
    }
}

Tímto způsobem MVVM zjednodušuje správu stavu UI a odděluje logiku od prezentace.