Sobes.tech
Middle+

¿Cómo hacer que una clase sea observable a partir de iOS 17?

sobes.tech AI

Respuesta de la IA

A partir de iOS 17, para hacer que una clase sea observable, se puede usar el nuevo protocolo Observable de Swift Concurrency. En lugar del habitual ObservableObject con @Published, ahora la clase debe cumplir con el protocolo Observable y usar un flujo asíncrono de cambios.

Ejemplo:

import SwiftUI
import Observation

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

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

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

Aquí, lo clave es la anotación @Observable antes de la clase, que genera automáticamente la lógica necesaria para rastrear cambios. Esto simplifica la creación de modelos observables y su integración con SwiftUI.