Sobes.tech
Junior — Middle

Πώς υλοποιείτε το αρχιτεκτονικό μοτίβο MVVM κατά την ανάπτυξη με UIKit;

sobes.tech AI

Απάντηση από AI

Το αρχιτεκτονικό μοτίβο MVVM (Model-View-ViewModel) στο UIKit υλοποιείται μέσω του διαχωρισμού των ευθυνών μεταξύ τριών συστατικών:

  • Model — δεδομένα και επιχειρηματική λογική.
  • View — οπτικά στοιχεία της διεπαφής (UIView, UIViewController).
  • ViewModel — μεσάζων που μετατρέπει τα δεδομένα από το μοντέλο σε μια μορφή κατάλληλη για εμφάνιση στη View.

Η υλοποίηση του MVVM στο UIKit περιλαμβάνει συνήθως:

  1. Δημιουργία ενός ViewModel που περιέχει ιδιότητες και μεθόδους για την προετοιμασία των δεδομένων.
  2. Ο ViewController εγγράφεται στις αλλαγές στο ViewModel (μέσω KVO, Combine, RxSwift ή delegates) και ενημερώνει το UI.
  3. Το ViewModel δεν περιέχει αναφορές στη View, κάτι που αυξάνει τη δοκιμαστικότητα.

Παράδειγμα απλούστερου ViewModel:

class UserViewModel {
    var name: String
    var onNameChanged: (() -> Void)?

    private var user: User {
        didSet {
            name = user.name.uppercased()
            onNameChanged?()
        }
    }

    init(user: User) {
        self.user = user
        self.name = user.name.uppercased()
    }

    func updateName(_ newName: String) {
        user.name = newName
    }
}

Στο ViewController, εγγράφεστε στο onNameChanged και ενημερώνετε το UI όταν αλλάζουν τα δεδομένα.