Skip to content

zakbarlow1995/SwiftUI-MVVM-Example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

SwiftUI-MVVM-Example

A basic example of reactive View-ViewModel binding (MVVM Architecture) in SwiftUI using ObservableObject, @ObservedObject and @Published


Basic steps:

  1. Ensure that your View Model class conforms to ObservableObject
    class ViewModel: ObservableObject {...}
  1. Ensure that the bindable property in your View Model class is marked as @Published
    class ViewModel: ObservableObject {

        @Published var model: Model = ...

    }
  1. Ensure that the viewModel instance is marked as @ObservedObject
    struct ContentView: View {

        @ObservedObject var viewModel = ViewModel()

        var body: some View {
            ...
        }
    }
  1. Finally, use the property to set up the bind between the View and View Model
    struct ContentView: View {

        @ObservedObject var viewModel = ViewModel()

        var body: some View {
            Text("\(viewModel.model.property)")
        }
    }

About

A SwiftUI MVVM Example

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages