Kotlin Coroutines 1.2.0からFlowというCold Streamを実現する仕組みが導入されました。これまではChannelというHot Streamの仕組みがあったのでRxにだいぶ近づいてきた感じがあります。 この記事では、FlowとLiveData、双方向データバインディングを使っていい感じにUIのイベントを処理してみます。 LiveData as Flow まずは、LiveDataにセットされた値をFlowとして扱うための拡張関数を作ります。Channelを作るときはchannelやproduceといったChannel Builderで作っていましたが、FlowではflowやflowViaChannelというFlow Builderが用意されています。 flowではFlowに値を流す処理emitがsuspend関数になっており、ObserverのonChanged