Sobes.tech
Junior — Middle

Πώς πραγματοποιείται η ανταλλαγή δεδομένων και η αλληλεπίδραση μεταξύ των επιπέδων του συστήματος κατά τη δημιουργία μιας εφαρμογής από το μηδέν;

sobes.tech AI

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

Στις εφαρμογές iOS, η αλληλεπίδραση μεταξύ των στρωμάτων συνήθως βασίζεται σε αρχιτεκτονικά μοτίβα (MVC, MVVM, VIPER κ.ά.).

Η ανταλλαγή δεδομένων γίνεται μέσω:

  • Μοντέλων (Model): αποθηκεύουν δεδομένα και επιχειρηματική λογική.
  • Προβολών (View): εμφανίζουν δεδομένα στον χρήστη.
  • Ελεγκτών ή ViewModel: διαχειρίζονται τη λογική και συνδέουν το μοντέλο με την προβολή.

Τα δεδομένα μεταδίδονται μέσω μεθόδων, delegate, closures ή βιβλιοθηκών αντιδραστικών (π.χ., Combine, RxSwift).

Παράδειγμα: Το ViewModel λαμβάνει δεδομένα από το μοντέλο και ενημερώνει την προβολή μέσω binding ή callback.

class ViewModel {
    var dataUpdated: (() -> Void)?
    private var data: [String] = [] {
        didSet {
            dataUpdated?()
        }
    }
    func fetchData() {
        // Λήψη δεδομένων από το μοντέλο
        data = ["Item1", "Item2"]
    }
}

class ViewController: UIViewController {
    let viewModel = ViewModel()
    override func viewDidLoad() {
        super.viewDidLoad()
        viewModel.dataUpdated = { [weak self] in
            // Ενημέρωση UI
            self?.tableView.reloadData()
        }
        viewModel.fetchData()
    }
}