Sobes.tech
Middle+

Como tornar uma classe observável a partir do iOS 17?

sobes.tech IA

Resposta da IA

A partir do iOS 17, para tornar uma classe observável, pode usar o novo protocolo Observable do Swift Concurrency. Em vez do habitual ObservableObject com @Published, agora a classe deve conformar-se ao protocolo Observable e usar um fluxo assíncrono de alterações.

Exemplo:

import SwiftUI
import Observation

@Observable
class MyModel {
    var value: Int = 0
}

// Uso no SwiftUI
struct ContentView: View {
    @StateObject private var model = MyModel()

    var body: some View {
        Text("Valor: \(model.value)")
    }
}

Aqui, o elemento chave é a anotação @Observable antes da classe, que gera automaticamente a lógica necessária para rastrear alterações. Isto simplifica a criação de modelos observáveis e a sua integração com SwiftUI.