The difference between @StateObject, @EnvironmentObject, and @ObservedObject in SwiftUI

SwiftUI implements it's data flow management types, such as State, Binding, and ObservedObject, as property wrappers. In this post, Majid explains the difference between some of these property wrappers, including the new StateObject property wrapper which is available in iOS 14