Sobes.tech
Junior — Middle

El tudná magyarázni, hogy mi az MVVM architektúrális minta, és hogyan alkalmazzák az interfészek fejlesztésében?

sobes.tech MI

Válasz az MI-től

MVVM (Model-View-ViewModel) — széles körben használt architekturális minta, amelyet különösen adatkötelezett alkalmazások felhasználói felületeinek fejlesztésére használnak.

  • Model — tartalmazza az adatokat és az üzleti logikát.
  • View — felelős a felület megjelenítéséért és a felhasználóval való interakcióért.
  • ViewModel — közvetítő a Model és a View között, tartalmazza a bemutatási logikát és az interfész állapotát.

iOS-en a MVVM segít elválasztani a UI logikát az üzleti logikától, javítva a kód tesztelhetőségét és karbantarthatóságát. A ViewModel adatokat és parancsokat biztosít a View számára, és a View feliratkozik a változásokra kötéseken vagy megfigyelőn keresztül.

Egyszerű példa (egyszerűsített):

class UserViewModel {
    var userName: String = "" {
        didSet {
            // értesítés a View-nak a változásról
        }
    }
    func fetchUser() {
        // adatok betöltése a Model-ből
        userName = "Ivan"
    }
}

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

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

Így az MVVM egyszerűsíti az UI állapotának kezelését és elválasztja a logikát a bemutatástól.