title: Should flutter root widget always be StatelessWidget?
body: <p>When I read the doc in flutter, I have a question that should flutter root widget always be StatelessWidget?</p>
  
  <pre class="lang-dart prettyprint-override"><code> class MyApp extends StatelessWidget {
     @override
     Widget build(BuildContext context) {
       return MaterialApp(
         title: 'Flutter Code Sample for Navigator',
         // MaterialApp contains our top-level Navigator
         initialRoute: '/',
         routes: {
           '/': (BuildContext context) =&gt; HomePage(),
           '/signup': (BuildContext context) =&gt; SignUpPage(),
         },
       );
     }
   }
  </code></pre>
  
  <ol>
  <li>Because I think there's sometime need init function to call, and maybe not want the code of that write in <code>HomePage</code>.  For example: check token expire or not, and decide go to <code>HomePage</code> or <code>LoginPage</code>.</li>
  <li>Then the best option: should I change the root Widget to StatefulWidget, and just include the logic above in its <code>initState</code> function ?</li>
  </ol>