package Ġcom . l uk as le ch ner . coroutine use case son android . playground . flow . shared Flow And State Flow Ċ Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . Mutable State Flow Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ // ĠThe Ġdifference Ġbetween ĠShared Flow Ġand ĠState Flow Ġcomes Ġwith Ġback pressure Ċ // ĠShared ĠFlow Ġhas Ġsome Ġoptions Ġfor Ġhandling Ġback pressure Ċ // ĠState Flow Ġjust Ġreplaces Ġold Ġvalues Ġwith Ġnew Ġones Ġ- ĠState Flow Ġhas Ġsingle - element Ġbuffer Ċ Ċ // ĠState Flow Ġalways Ġhas Ġa Ġvalue Ġ- Ġyou Ġneed Ġto Ġset Ġan Ġinitial Ġvalue Ġwhen Ġcreating Ġa ĠState Flow Ċ Ċ // ĠCon sum ers Ġof ĠState Flow Ġwill Ġget Ġthe Ġcurrent Ġemission Ġimmediately . Ċ // Ġ. value Ġ= Ġnow Ġcurrent Ġvalue Ċ Ċ // ĠGood Ġfor Ġstate Ġmanagement Ċ Ċ // ĠEx posing ĠState Flow Ġallows Ġthe Ġconsumer Ġto Ġget Ġthe Ġlast - emit ted Ġstate Ċ private Ġfun Ġstate Flow (): ĠFlow < String > Ġ{ ĊĠĠĠ Ġval Ġletters Ġ= ĠMutable State Flow (" A ") ĊĠĠĠ ĠGlobal Scope . launch Ġ{ ĊĊĠĠĠĠĠĠĠ ĠlistOf (" B ", Ġ" C ", Ġ" D ", Ġ" E ", Ġ" F "). forEach Ġ{ Ġletter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġletters . value Ġ= Ġletter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġletters Ċ } Ċ Ċ fun Ġmain () Ġ= Ġrun Blocking Ġ{ ĊĊĠĠĠ Ġstate Flow (). collect Ġ{ ĊĠĠĠĠĠĠĠ Ġdelay ( 1 1 0 0 ) Ġ// ĠBack pressure ĊĠĠĠĠĠĠĠ Ġprintln (" Collected : Ġ$ it ") ĊĠĠĠ Ġ} Ċ }