title: How to update UIViewRepresentable with ObservableObject
body: <p>I'm trying to learn Combine with SwiftUI and I'm struggling how to update my view (from UIKit) with <code>ObservableObject</code> (previously <code>BindableObject</code>). The issue is that, obviously, method <code>updateUIView</code> will not fire once the <code>@Published</code> object sends the notification it was changed.</p>
  
  <pre><code>class DataSource: ObservableObject {
      @Published var locationCoordinates = [CLLocationCoordinate2D]()
      var value: Int = 0
  
      init() {
          Timer.scheduledTimer(withTimeInterval: 3, repeats: true) { timer in
              self.value += 1
              self.locationCoordinates.append(CLLocationCoordinate2D(latitude: 52, longitude: 16+0.1*Double(self.value)))
          }
      }
  }
  
  struct MyView: UIViewRepresentable {
      @ObservedObject var dataSource = DataSource()
  
      func makeUIView(context: Context) -&gt; MKMapView {
          MKMapView(frame: .zero)
      }
  
      func updateUIView(_ view: MKMapView, context: Context) {
          let newestCoordinate = dataSource.locationCoordinates.last ?? CLLocationCoordinate2D(latitude: 52, longitude: 16)
          let annotation = MKPointAnnotation()
          annotation.coordinate = newestCoordinate
          annotation.title = "Test #\(dataSource.value)"
          view.addAnnotation(annotation)
      }
  }
  </code></pre>
  
  <p>How to bind that <code>locationCoordinates</code> array to the view in such a way, that a new point is in fact added each time it refreshes?</p>