Sobes.tech
Junior — Middle

Jak odbywa się wymiana danych i interakcja między warstwami systemu podczas tworzenia aplikacji od podstaw?

sobes.tech AI

Odpowiedź od AI

W aplikacjach iOS interakcja między warstwami jest zwykle oparta na wzorcach architektonicznych (MVC, MVVM, VIPER itp.).

Wymiana danych odbywa się za pomocą:

  • Modeli (Model): przechowują dane i logikę biznesową.
  • Widoków (View): wyświetlają dane użytkownikowi.
  • Kontrolerów lub ViewModel: zarządzają logiką i łączą model z widokiem.

Dane są przesyłane przez metody, delegaty, closures lub biblioteki reaktywne (np. Combine, RxSwift).

Przykład: ViewModel pobiera dane z modelu i aktualizuje View za pomocą bindingu lub callbacka.

class ViewModel {
    var dataUpdated: (() -> Void)?
    private var data: [String] = [] {
        didSet {
            dataUpdated?()
        }
    }
    func fetchData() {
        // Pobierz dane z modelu
        data = ["Item1", "Item2"]
    }
}

class ViewController: UIViewController {
    let viewModel = ViewModel()
    override func viewDidLoad() {
        super.viewDidLoad()
        viewModel.dataUpdated = { [weak self] in
            // Odśwież UI
            self?.tableView.reloadData()
        }
        viewModel.fetchData()
    }
}