title: Map multiple LiveData values into one
body: <p>So, in <code>iOS</code> development, I use <code>ReactiveCocoa</code> and with that framework I am able to observe multiple <code>NSObjects</code> and combine them into a <code>signal</code> that returns a a value. Something like this: </p>
  
  <pre><code>-(RACSignal *)modelIsValidSignal {
  
      return [RACSignal combineLatest:@[RACObserve(self,username), RACObserve(self,password), RACObserve(self, busyLoggingIn)]
                               reduce:^id(NSString *username, NSString *password, NSNumber *busyLoggingIn) {
                                   return @((username.length &gt; 0) &amp;&amp; (password.length &gt; 0 &amp;&amp; busyLoggingIn.boolValue == NO));
                               }];
  }
  </code></pre>
  
  <p>So, this will return a <code>boolean</code> that is either false or true. As soon as one of the objects state changes, this signal would be notified and the <code>subscriber (Observer)</code> would then get that current value of the boolean. </p>
  
  <p>How do I do something similar to this, using <code>LiveData</code>? the closest thing to doing this, is <code>MediatorLiveData</code> but, I don't see how I can observe multiple <code>LiveData</code> events at the same time and then reduce it, like in the above example. </p>