Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin CoroutineのFlowを使った双方向通信について

Kotlin CoroutineのFlowを使った双方向通信について

Sendai.go × GDG Cloud Sendai × sendai.kt 合同忘年会!! にて発表

Yuta Tomiyama

December 20, 2019
Tweet

More Decks by Yuta Tomiyama

Other Decks in Programming

Transcript

  1. 自己紹介 HN: マヤミト 本名: 富山 雄太 会津大学 学部2年 好きな言語: Kotlin

    GitHub: https://github.com/yt8492 Zliという会津大学の技術系LTサークルやってます Facebookのすがた Twitterのすがた ID:yt8492
  2. Flowとは A cold asynchronous data stream that sequentially emits values

    and completes normally or with an exception. (公式ドキュメントより) Kotlin Coroutines 1.2.0-alpha-2で追加された、コールドストリームを扱う仕組み 1.3.2でstableに(一部Experimental) @sys1yagi さんの 5分でわかるKotlin Coroutines Flow がわかりやすいです https://speakerdeck.com/sys1yagi/5fen-tewakarukotlin-coroutines-flow
  3. ちょっとしたサンプルコード flowOf(1, 2, 3, 4, 5) .filter { it %

    2 == 1 } .map { it * 10 } .onEach { delay(2000) Toast.makeText(this, "value: $it", Toast.LENGTH_SHORT).show() } .launchIn(lifecycleScope)
  4. ちょっとしたサンプルコード lifecycleScope.launch { flowOf(1, 2, 3, 4, 5) .filter {

    it % 2 == 1 } .map { it * 10 } .collect { delay(2000) Toast.makeText(this@MainActivity, "value: $it", Toast.LENGTH_SHORT).show() } }