Sobes.tech
Junior — Middle

Pode explicar o princípio de funcionamento do objeto ObservableObject e o seu papel na programação reativa?

sobes.tech IA

Resposta da IA

ObservableObject é um protocolo no SwiftUI que permite a um objeto notificar os assinantes sobre alterações nos seus dados. É um elemento-chave da programação reativa, onde a interface do utilizador atualiza automaticamente quando o estado do modelo muda.

Quando uma classe conforma-se ao ObservableObject e marca as suas propriedades com @Published, quaisquer alterações nessas propriedades acionam notificações, e as vistas SwiftUI relacionadas atualizam-se.

Exemplo:

import SwiftUI
import Combine

class UserSettings: ObservableObject {
    @Published var username: String = ""
}

struct ContentView: View {
    @ObservedObject var settings = UserSettings()

    var body: some View {
        TextField("Nome de utilizador", text: $settings.username)
        Text("Olá, \(settings.username)!")
    }
}

Aqui, ao alterar o nome de utilizador, o texto na interface atualiza-se automaticamente. Assim, o ObservableObject liga o modelo à vista, garantindo uma atualização reativa da UI.