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()
}
}