title: RxSwift initial value when binding a Variable
body: <p>I have the following code:</p>
  
  <pre><code>import RxSwift
  import RxCocoa
  
  class ViewModel {
  
      var text = Variable&lt;String&gt;("")
  
      init() {
          text.value = "hello"
      }
  
  }
  
  class ViewController: UIViewController {
      @IBOutlet weak var textView: UITextView!
      @IBOutlet weak var counterLabel: UILabel!
  
      var viewModel = ViewModel()
  
      let disposeBag = DisposeBag()
  
      override func viewDidLoad() {
          super.viewDidLoad()
  
          textView.rx.text
              .orEmpty
              .debug()
              .bind(to: viewModel.text)
              .disposed(by: disposeBag)
      }
  }
  </code></pre>
  
  <p>The binding works fine (when I change the <code>UITextView</code> it properly updates the <code>viewModel</code>. However, since the binding is unidirectional (or so I understand), the <code>textView</code> doesn't start with the value I set in the <code>ViewModel</code>'s <code>init</code> method.</p>
  
  <p>I can do <code>textView.text = viewModel.text.value</code> just before the binding, but since I'm using RxSwift, I want to understand what's the usual practice here.</p>