<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: The Flutter Pioneers</title>
    <description>The latest articles on Forem by The Flutter Pioneers (@theflutterpioneers).</description>
    <link>https://forem.com/theflutterpioneers</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F4082%2Ff4f4cbdd-3040-4e03-beba-a7f05627c77e.png</url>
      <title>Forem: The Flutter Pioneers</title>
      <link>https://forem.com/theflutterpioneers</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/theflutterpioneers"/>
    <language>en</language>
    <item>
      <title>How to create a Material Design Dropdown button in Flutter</title>
      <dc:creator>Luciano Jung</dc:creator>
      <pubDate>Mon, 09 Aug 2021 17:04:38 +0000</pubDate>
      <link>https://forem.com/theflutterpioneers/how-to-create-a-material-design-dropdown-button-in-flutter-184o</link>
      <guid>https://forem.com/theflutterpioneers/how-to-create-a-material-design-dropdown-button-in-flutter-184o</guid>
      <description>&lt;p&gt;Hi there dev community,&lt;/p&gt;

&lt;p&gt;I have a new widget for you to reuse.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F924g8418d4v3ih74n73v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F924g8418d4v3ih74n73v.png" alt="Dropdown button default"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu00w20i8ynityj9u6nal.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu00w20i8ynityj9u6nal.png" alt="Dropdown button clicked"&gt;&lt;/a&gt;&lt;br&gt;
So I was searching for a good looking dropdown menu following the material design. After several changing processes I came up with the following code for a stateless widget to place in your shared folder.&lt;br&gt;
Feel free to use it in your projects or adjust it for your own purposes. Below the code I will explain some design decitions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Please consider to call at least &lt;code&gt;setState(() {})&lt;/code&gt; in the &lt;code&gt;onChangedCallback&lt;/code&gt; method in order to change the items in the dropdown. Also consider, that &lt;code&gt;value&lt;/code&gt; has to be an item in &lt;code&gt;values&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  The material dropdown widget
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MaterialDropdownView&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;StatelessWidget&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="kt"&gt;Function&lt;/span&gt; &lt;span class="n"&gt;onChangedCallback&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Iterable&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="n"&gt;MaterialDropdownView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="kd"&gt;required&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="kd"&gt;required&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;values&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="kd"&gt;required&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onChangedCallback&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Align&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;alignment:&lt;/span&gt; &lt;span class="n"&gt;Alignment&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;centerLeft&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Container&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nl"&gt;padding:&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;EdgeInsets&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;only&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;left:&lt;/span&gt; &lt;span class="mf"&gt;15.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;right:&lt;/span&gt; &lt;span class="mf"&gt;10.0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="nl"&gt;decoration:&lt;/span&gt; &lt;span class="n"&gt;BoxDecoration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="nl"&gt;borderRadius:&lt;/span&gt; &lt;span class="n"&gt;BorderRadius&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;circular&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;32.0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="nl"&gt;border:&lt;/span&gt; &lt;span class="n"&gt;Border&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;all&lt;/span&gt;&lt;span class="p"&gt;()),&lt;/span&gt;
        &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;MouseRegion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
          &lt;span class="nl"&gt;cursor:&lt;/span&gt; &lt;span class="n"&gt;SystemMouseCursors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;click&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;DropdownButtonHideUnderline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;DropdownButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="nl"&gt;value:&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="nl"&gt;items:&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;
                    &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;values&lt;/span&gt;
                    &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;map&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;DropdownMenuItem&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;gt;((&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;DropdownMenuItem&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;
                    &lt;span class="nl"&gt;value:&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                  &lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="p"&gt;})&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toList&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
                &lt;span class="nl"&gt;onChanged:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newValue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onChangedCallback&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newValue&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="p"&gt;}),&lt;/span&gt;
          &lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  How to use it
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;MaterialDropdownView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                    &lt;span class="nl"&gt;onChangedCallback:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newValue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                      &lt;span class="n"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="p"&gt;{});&lt;/span&gt;
                    &lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="nl"&gt;value:&lt;/span&gt; &lt;span class="s"&gt;'item1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="nl"&gt;values:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'item 1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'item 2'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'item 3'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'item 4'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'item 5'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                  &lt;span class="p"&gt;),&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Design descisions
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Align
&lt;/h3&gt;

&lt;p&gt;Align has to be separated from the Container in order to prevent the dropdown box filling the whole width available.&lt;/p&gt;
&lt;h3&gt;
  
  
  MouseRegion
&lt;/h3&gt;

&lt;p&gt;MouseRegion lets the user show the click cursor when he is hovering over the dropdown with a mouse. It is the parent of DropdownButtonHideUnderline to only show it when the area is clickable&lt;/p&gt;
&lt;h3&gt;
  
  
  DropdownButtonHideUnderline
&lt;/h3&gt;

&lt;p&gt;This widget removes the default Underline of a DropdownButton.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wtpvq02mzobtz4lx46j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wtpvq02mzobtz4lx46j.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/lucianojung"&gt;Follow The Flutter Pioneers&lt;/a&gt; to not miss any following posts.&lt;br&gt;
Are you interested in &lt;a href="https://dev.to/listings/collabs/wanted-flutter-blogger-on-dev-to-294c"&gt;joining this Group&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Consider to &lt;strong&gt;support the author&lt;/strong&gt; if you like his work and &lt;a href="https://www.buymeacoffee.com/lucianojung" rel="noopener noreferrer"&gt;gift him a sunny day&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  You may also like
&lt;/h3&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/theflutterpioneers" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F4082%2Ff4f4cbdd-3040-4e03-beba-a7f05627c77e.png" alt="The Flutter Pioneers"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F570773%2F4067a97a-e6f0-46c4-84d9-bf571ec88277.jpeg" alt=""&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/theflutterpioneers/the-best-flutter-posts-for-beginners-you-may-have-missed-j2g" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;The best Flutter posts for beginners in 2021 you may have missed&lt;/h2&gt;
      &lt;h3&gt;Luciano Jung for The Flutter Pioneers ・ May 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#bestofdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/lucianojung" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F570773%2F4067a97a-e6f0-46c4-84d9-bf571ec88277.jpeg" alt="lucianojung"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/lucianojung/global-variable-access-in-flutter-3ijm" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🦋Flutter - Manage variables globally&lt;/h2&gt;
      &lt;h3&gt;Luciano Jung ・ Feb 10 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#bestpractices&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;div class="ltag__link"&gt;
  &lt;a href="/lucianojung" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F570773%2F4067a97a-e6f0-46c4-84d9-bf571ec88277.jpeg" alt="lucianojung"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/lucianojung/how-to-handle-a-scrollable-list-of-various-widgets-in-flutter-249n" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🦋How to handle a scrollable list of various widgets in Flutter&lt;/h2&gt;
      &lt;h3&gt;Luciano Jung ・ Jun 3 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>programming</category>
      <category>android</category>
      <category>flutter</category>
      <category>ios</category>
    </item>
    <item>
      <title>The best Flutter posts for beginners in 2021 you may have missed</title>
      <dc:creator>Luciano Jung</dc:creator>
      <pubDate>Mon, 03 May 2021 06:50:17 +0000</pubDate>
      <link>https://forem.com/theflutterpioneers/the-best-flutter-posts-for-beginners-you-may-have-missed-j2g</link>
      <guid>https://forem.com/theflutterpioneers/the-best-flutter-posts-for-beginners-you-may-have-missed-j2g</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;While thinking about making a post for people just starting using flutter I realized, that there are already great tutorials on dev.to. So I decided to make a &lt;strong&gt;bestOf Flutter posts for beginners&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Just to be clear: None of the authors have offered me any consideration to be mentioned in this post. If an author doesn't want to be mentioned in this post or if you think a Flutter tutorial is missing, feel free to give me feedback in the comments below.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Flutter?
&lt;/h2&gt;

&lt;p&gt;Before you're starting you may want to know what is Flutter and why should you use it? Gladly Dae Won Kim explaines it really good in his post &lt;strong&gt;Top 4 Why Flutter is the BEST&lt;/strong&gt;. He also discusses some Cons of flutter and gives a brief introduction into the programming language dart (the programming language behind the flutter framework).&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/dw2kim" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F610917%2F0f83f5a8-b636-4260-8e07-ffcfc202cc7e.png" alt="dw2kim"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/dw2kim/flutter-a-quick-overview-3ik1" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Top 4 Why Flutter is the BEST 🙌&lt;/h2&gt;
      &lt;h3&gt;Dae Won Kim ・ Apr 20 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#flutterdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#firstpost&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;For the installation part. Flutter has a really good tutorial themselve. On &lt;strong&gt;&lt;a href="https://flutter.dev/docs/get-started/install" rel="noopener noreferrer"&gt;Flutter.dev&lt;/a&gt;&lt;/strong&gt; it's shown how to install Flutter on Windows, macOs, Linux or even Chrome OS:&lt;/p&gt;

&lt;center&gt;[Getting started with Flutter](https://flutter.dev/docs/get-started/install)&lt;/center&gt;




&lt;h2&gt;
  
  
  Stateless- and Stateful Widgets
&lt;/h2&gt;

&lt;p&gt;A basic concept in flutter each beginner has to understand is the difference between a Stateless- and a Stateful Widgets. Namita Shetty describes in her blogpost &lt;strong&gt;StatelessWidget and StatefulWidget in Flutter.&lt;/strong&gt; short and crisp how they differ from each other and displays an example for each.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/codeitout_" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F503457%2Fc1b3d8e6-26ff-42b3-b36a-f0dab602c10c.png" alt="codeitout_"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/codeitout_/statelesswidget-and-statefulwidget-in-flutter-2b1k" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;StatelessWidget and StatefulWidget in Flutter.&lt;/h2&gt;
      &lt;h3&gt;Codeitout ・ Nov 15 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#widgets&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  Libraries
&lt;/h2&gt;

&lt;p&gt;When you dive deeper into flutter you will find out, that you can get quite a lot of extensions for various situations. To show you some libraries you must now when starting flutter app development Enrico aka TheOtherDev/s made a really good post called &lt;strong&gt;Flutter essentials: get started with great libraries&lt;/strong&gt; including examples for each package to illustrate its benefits.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/theotherdevs" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F458126%2F1228fd0f-0c1d-4d1e-b59b-1e4b49980df6.png" alt="theotherdevs"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/theotherdevs/flutter-essentials-get-started-with-great-libraries-2ah" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Flutter essentials: get started with great libraries&lt;/h2&gt;
      &lt;h3&gt;TheOtherDev/s ・ Dec 9 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;If you want to add the packages in your project Arbitrary made a post covering both ways doing this.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/arbitrary" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F595513%2F3d230e7a-b4e9-4b7a-96b3-adf41dad912c.png" alt="arbitrary"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/arbitrary/using-external-packages-in-flutter-35m3" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Using external packages in flutter&lt;/h2&gt;
      &lt;h3&gt;Arbitrary ・ Apr 29 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  Screen Navigation
&lt;/h2&gt;

&lt;p&gt;In the case your app has more than one screen you need to get started with navigation. Since I figured out a clean way in flutter to handle routing (using some online tutorials) I recommend reading my post &lt;strong&gt;Flutter - Next Level Navigation - Basics&lt;/strong&gt;.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/lucianojung" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F570773%2F4067a97a-e6f0-46c4-84d9-bf571ec88277.jpeg" alt="lucianojung"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/lucianojung/flutter-next-level-navigation-nh4" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;🦋Flutter - Next Level Navigation - Basics&lt;/h2&gt;
      &lt;h3&gt;Luciano Jung ・ Apr 4 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  First Project Ideas
&lt;/h2&gt;

&lt;p&gt;If you're new to flutter and now are dying to start your first project Muhammad Ali made a post with 15 ideas for your first project. The post contains 15 videos for different apps programmed using flutter to get started with. In this post he shows 7 fundamental flutter packages and describes their purposes.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/nerdjfpb" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F217204%2F5d66fc09-f166-4a95-a5e1-94436bedbe7d.jpeg" alt="nerdjfpb"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/nerdjfpb/15-flutter-app-ideas-beginner-to-expert-with-free-tutorial-1h0c" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;15 Flutter App IDEAS: BEGINNER TO EXPERT [WITH FREE TUTORIAL]&lt;/h2&gt;
      &lt;h3&gt;Muhammad Ali (Nerdjfpb) ・ Jul 5 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#android&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#ios&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codenewbie&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;





&lt;p&gt;Thats all, thanks for reading :) &lt;br&gt;
If you have a friend who wants to learn flutter just send him or her &lt;strong&gt;&lt;a href="https://letmegooglethat.com/?q=How+to+copy+a+website+link+to+send+it+to+a+friend%3F" rel="noopener noreferrer"&gt;this post&lt;/a&gt;&lt;/strong&gt; and noone can stop him joining the flutter community!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wtpvq02mzobtz4lx46j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wtpvq02mzobtz4lx46j.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/lucianojung"&gt;Follow The Flutter Pioneers&lt;/a&gt; to not miss any following posts.&lt;br&gt;
Are you interested in &lt;a href="https://dev.to/listings/collabs/wanted-flutter-blogger-on-dev-to-294c"&gt;joining this Group&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Consider to &lt;strong&gt;support the author&lt;/strong&gt; if you like his work and &lt;a href="https://www.buymeacoffee.com/lucianojung" rel="noopener noreferrer"&gt;buy him a sushi roll&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>discuss</category>
      <category>beginners</category>
      <category>bestofdev</category>
    </item>
  </channel>
</rss>
