<?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>DEV Community: Salman S</title>
    <description>The latest articles on DEV Community by Salman S (@salkuadrat).</description>
    <link>https://dev.to/salkuadrat</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%2Fuser%2Fprofile_image%2F765029%2F55172501-8e14-4c78-9d94-9bde5f213e00.png</url>
      <title>DEV Community: Salman S</title>
      <link>https://dev.to/salkuadrat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/salkuadrat"/>
    <language>en</language>
    <item>
      <title>Flutter Starter Project, the Easy Way</title>
      <dc:creator>Salman S</dc:creator>
      <pubDate>Tue, 30 Nov 2021 11:42:12 +0000</pubDate>
      <link>https://dev.to/salkuadrat/flutter-starter-project-the-easy-way-3f6f</link>
      <guid>https://dev.to/salkuadrat/flutter-starter-project-the-easy-way-3f6f</guid>
      <description>&lt;p&gt;When starting our application with Flutter, we usually use a default project from the following Flutter command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flutter create myapp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These default project is more than enough for a newcomer who just starting to learn development with Flutter.&lt;/p&gt;

&lt;p&gt;However, for some who are on their journey to build a real production-ready application, this default feels a little too simple. This is where a starter project comes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starter Project
&lt;/h2&gt;

&lt;p&gt;Starter project is a template that we use to structure our new project. &lt;/p&gt;

&lt;p&gt;It's usually comes with boilerplate code so we don't need to repeat ourselves (DRY) each time we start a new project. &lt;/p&gt;

&lt;p&gt;There're many starter projects for Flutter that we can find at Github. &lt;/p&gt;

&lt;p&gt;Most of it comes as a standalone repository that we can copy via &lt;code&gt;git clone&lt;/code&gt; or download manually (and then setup all the necessary changes to fulfill the needs of our new app).&lt;/p&gt;

&lt;p&gt;Most of these starter project also comes with a predefined state management that we have to use in the new project. They don't give enough freedom to choose our preferred state management from the start.&lt;/p&gt;

&lt;p&gt;This is where &lt;a href="https://pub.dev/packages/f"&gt;F&lt;/a&gt; comes it.&lt;/p&gt;

&lt;h2&gt;
  
  
  F
&lt;/h2&gt;

&lt;p&gt;Started as a simple CLI package to be used as an alternative for Flutter CLI. In its new version, F is now equipped with a command that we can use to create a starter project in Flutter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pub.dev/packages/f"&gt;https://pub.dev/packages/f&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/salkuadrat/f"&gt;https://github.com/salkuadrat/f&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's as simple as using these command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;f s myapp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default &lt;code&gt;f s&lt;/code&gt; command will generate a starter project with Provider. But, if we want a project with other state management (BLoC, Cubit, GetX, or Riverpod), feel free to specify it in the command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;f s --bloc myapp

f s --cubit myapp

f s --getx myapp

f s --riverpod myapp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can explore the examples to see the structure of starter project generated by &lt;code&gt;f s&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/salkuadrat/f/tree/master/starter_bloc"&gt;starter_bloc&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/salkuadrat/f/tree/master/starter_cubit"&gt;starter_cubit&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/salkuadrat/f/tree/master/starter_getx"&gt;starter_getx&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/salkuadrat/f/tree/master/starter_provider"&gt;starter_provider&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/salkuadrat/f/tree/master/starter_riverpod"&gt;starter_riverpod&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's simple and flexible.&lt;/p&gt;

&lt;p&gt;The goal is to make our journey with Flutter becomes better... more smooth, more comfortable, and more enjoyable.&lt;/p&gt;

&lt;p&gt;Try it out and let us know what you think.&lt;/p&gt;

&lt;p&gt;~ Happy Coding&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>starter</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
