title: Is a good way to use State<Boolean> in view model with Android Compose?
body: <p>I have read some sample codes for learning Compose.</p>
  <p>I find many sample projects use Code A to create a <code>StateFlow</code> in view model, then convert it to <code>State</code> in <code>@Composable</code> function, the UI will be updated automatically when <code>drawerOpen</code> is changed.</p>
  <p>1: I think both Code B and Code C can do the same thing, right? Why does many projects seldom to use them?</p>
  <p>2: Is Code A a good way ?</p>
  <p>3: I needn't to add <code>rememberSaveable</code> for variable <code>drawerOpen</code> in <code>@Composable fun myRoute(...)</code> because view model will store data, right?</p>
  <p><strong>Code A</strong></p>
  <pre><code>class MainViewModel : ViewModel() {
      private val _drawerShouldBeOpened = MutableStateFlow(false)
      val drawerShouldBeOpened: StateFlow&lt;Boolean&gt; = _drawerShouldBeOpened  
      ...    
  }
  
  @Composable
  fun myRoute(
      val drawerOpen by MainViewModel.drawerShouldBeOpened.collectAsState()  //Do I need add  rememberSaveable ?
      ...
  }
  </code></pre>
  <p><strong>Code B</strong></p>
  <pre><code>class MainViewModel : ViewModel() {
      private var _drawerShouldBeOpened = mutableStateOf(false)
      val drawerShouldBeOpened: State&lt;Boolean&gt; = _drawerShouldBeOpened
      ...
  }
  
  @Composable
  fun myRoute(
     val drawerOpen = MainViewModel.drawerShouldBeOpened  //Do I need add  rememberSaveable ?
     ...
  }
  </code></pre>
  <p><strong>Code C</strong></p>
  <pre><code>class MainViewModel : ViewModel() {
     private var _drawerShouldBeOpened = false
     val drawerShouldBeOpened: Boolean = _drawerShouldBeOpened
     ...
  
  }
  
  @Composable
  fun myRoute(
     val drawerOpen = rememberSaveable { mutableStateOf(MainViewModel.drawerShouldBeOpened)) //Can I remove rememberSaveable ?
     
  }
  </code></pre>