<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SideGuide's Dev Blog]]></title><description><![CDATA[SideGuide's Dev Blog]]></description><link>https://blog.sideguide.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 12:53:18 GMT</lastBuildDate><atom:link href="https://blog.sideguide.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[SideGuide: Learn to program inside VS Code]]></title><description><![CDATA[Have you ever wondered what sets a 10x dev apart? It’s not just intelligence, discipline, and creativity. It’s attention. Science has shown that attention, or focus, is a resource. A resource that, for programmers, is like gold. Maintaining focus is ...]]></description><link>https://blog.sideguide.dev/sideguide-learn-to-program-inside-vs-code</link><guid isPermaLink="true">https://blog.sideguide.dev/sideguide-learn-to-program-inside-vs-code</guid><category><![CDATA[Flutter]]></category><category><![CDATA[Visual Studio Code]]></category><category><![CDATA[vscode extensions]]></category><category><![CDATA[React]]></category><category><![CDATA[Python]]></category><dc:creator><![CDATA[SideGuide]]></dc:creator><pubDate>Sun, 24 Jul 2022 02:00:36 GMT</pubDate><content:encoded><![CDATA[<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1658627485318/J9xwXxfX8.png" alt="image.png" /></p>
<p>Have you ever wondered what sets a 10x dev apart? It’s not just intelligence, discipline, and creativity. It’s attention. Science has shown that attention, or focus, is a resource. A resource that, for programmers, is like gold. Maintaining focus is the difference between solving the bug that’s stumped you for hours and getting lost for hours on social media.</p>
<p>But, the standard development workflow doesn’t conserve your attention. On the contrary, it almost seems like they’re designed to waste it. As a programmer, you have to constantly context switch between your browser and your code editor. Not to mention, you’ll likely have multiple tabs open on your web browser, with documentation, tutorials, stack overflow, etc. All this context switching is a huge waste of time. Every time you have to switch between windows or tabs, it takes a few seconds to orient yourself and figure out where you left off. Over a day or week, those few seconds can add up to hours of lost time.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1658627493777/RffMth3k2.png" alt="SideGuide? Where are you?" /></p>
<p>And more importantly, this constant switching distracts you from actually learning. Every time you have to rewind a tutorial on youtube to a code snippet, you missed or lose the tab with the medium article you were reading. You risk getting lost and having to re-orient.</p>
<p>But SideGuide can help! SideGuide is a VS Code extension that helps you maintain focus and learn faster while learning a new programming language. How? SideGuide is built directly into VS Code, placing all the learning material you need where you need it.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1658627513936/drEwx6u9L.png" alt="Using SideGuide in Practice" /></p>
<p>With Sideguide, all the resources you need are easy to find, and you can seamlessly transition between learning and coding. There’s no fighting with a video to find the right section of code or losing which tab your tutorial was open in. Each step is right there, right to the side of your editor</p>
<h2 id="heading-content">Content</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1658627692302/XIO-0qV3T.png" alt="image.png" /></p>
<p>The content in SideGuide is tailored for building real applications. Which makes sense, seeing as it’s built inside the most popular professional code editor on the planet. Each chapter walks you through the creation of a different application, teaching you practical development skills while also preparing you to customize the code to fit your own needs.</p>
<p>Currently, it only contains a course in Flutter or Dart. However, there’s a pre-order for a python and React.js/Next.js course available on our website.</p>
<h2 id="heading-interested-heres-how-you-can-help">Interested? Here’s how you can help.</h2>
<p>For years, we’ve felt that course platforms simply aren’t designed for programming education. So, we set out to build something better, something that fits seamlessly with the way developers develop. If that sounds appealing, please check out SideGuide. The first five chapters of our Flutter course are free, and more content will be released soon.</p>
<p>Also, SideGuide is actively looking for new instructors. If you’re interested in becoming an instructor for SideGuide, reach out to hello@sideguide.dev.</p>
]]></content:encoded></item><item><title><![CDATA[How to Use VS Code like a pro]]></title><description><![CDATA[As a programmer, the most valuable asset is the time you have to solve problems. 

And yet, I see novice programmers spend enormous amounts of time and thought power doing simple tasks that a computer is better at anyways. 
Development is about speed...]]></description><link>https://blog.sideguide.dev/how-to-use-vs-code-like-a-pro</link><guid isPermaLink="true">https://blog.sideguide.dev/how-to-use-vs-code-like-a-pro</guid><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Visual Studio Code]]></category><category><![CDATA[Programming Tips]]></category><dc:creator><![CDATA[SideGuide]]></dc:creator><pubDate>Fri, 03 Jun 2022 13:45:05 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1654559234299/Uv-tDGR2V.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As a programmer, the most valuable asset is the time you have to solve problems. </p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A9?alt=media&amp;token=9e1b6286-9271-49aa-9295-fc1a5753cb59" alt /></p>
<p>And yet, I see novice programmers spend enormous amounts of time and thought power doing simple tasks that a computer is better at anyways. </p>
<p>Development is about speed, and you can’t write and debug code like a pro without knowing how to use your tools like a pro.</p>
<p>VS Code is full of valuable features that most Devs don't use. In the following lesson, we will go over some of the most useful features of VS Code, so you can save time and build better programs. </p>
<h2 id="heading-keyboard-andgt-mouse">Keyboard &gt; Mouse</h2>
<p>Firstly, you should try to minimize the time spent navigating with your mouse. That doesn’t mean you need to download a completely mouseless editor (Like Vim), but the more key-binding you use, the faster your development will flow. </p>
<p>Here is a list of some of the most important key bindings I wish I knew as a fresher.</p>
<p><strong>Ctrl X</strong></p>
<p>Programmers need to copy and delete <strong>a line</strong> of code often.  Like this</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A11?alt=media&amp;token=c273b9eb-e2a4-443b-b73c-a853bec983db" alt /></p>
<p>Luckily, with VS Code, you don’t have to select the entire line! By default, <strong>Ctrl X</strong> will cut the line of code your cursor is on, allowing you to easily grab a line and move it somewhere else. </p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A12?alt=media&amp;token=b6e90837-4ade-4fcd-ae8b-5c84630432a7" alt /></p>
<p>Line was cut with <strong>Ctrl + X</strong> or <strong>Cmd + X</strong> </p>
<blockquote>
<p>☝ This also works with Ctrl + C</p>
</blockquote>
<p>But, we can move it even quicker! </p>
<p><strong>Move Line</strong></p>
<p>If you just need to move the lineup or down, you can use <strong>Alt  + up arrow/down arrow</strong> to move the line-up and down, like so!</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A13?alt=media&amp;token=862fe8b7-5a0d-40f2-9978-15dd30850ccb" alt /></p>
<h1 id="heading-commenting-with"><strong>Commenting with</strong></h1>
<p>Comments are crucial, but manually typing in <code>/* */</code> or <code>//</code> is a real pain! </p>
<p>Luckily, in VS Code, we can use <strong>Ctrl + /</strong> or <strong>Cmd + /</strong> to comment or uncomment the selected text! </p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A14?alt=media&amp;token=58d23798-bb58-4ba2-956b-edb3dc2ff43e" alt /></p>
<p>If you need to comment on a specific line, you can do that with <strong>Ctrl + /</strong> or <strong>CMD + /</strong> as well. </p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A15?alt=media&amp;token=7f9463cd-4ea9-4d1f-9127-90c05c3634b5" alt /></p>
<h2 id="heading-search-search-search">Search, Search, Search</h2>
<p>The most common? <strong>Searching!</strong></p>
<p>For example, you might notice that to find the file, you have to search through your projects directory.</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A16?alt=media&amp;token=f83904ac-3e9a-420a-b6ef-3af4d1de17db" alt /></p>
<p>But this is a huge waste of time and energy. With VS Code, you can instantly find the file you’re looking for with <strong>CTRL + P or CMD + P.</strong> </p>
<p>Watch how I find the file <code>gradient_button_1.dart</code></p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A18?alt=media&amp;token=278870a0-1949-403a-9fc2-a2aada3b603e" alt /></p>
<p>This is especially powerful in larger projects, where you might have hundreds of files that you need to navigate.</p>
<p>One of the most time-consuming things you can do is scroll through files searching for a function, or variable, like this:</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A20?alt=media&amp;token=0037f951-aa1d-4d72-9cad-4aa8ac1b5a32" alt="Whenever possible, don’t search through a file like this. " /></p>
<p>Instead, you can search through your file with <strong>Ctrl + F</strong> or <strong>Cmd + F.</strong> This finds all the instances of what you’re looking for in the file. </p>
<p>You can even navigate to the next found instance with <strong>enter,</strong> or to the last instance with <strong>shift + enter.</strong>  </p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A22?alt=media&amp;token=17231fcc-7e1b-4b22-8442-36395ec45bfe" alt="Use Ctrl + F and Enter to find instances of the _counter variable" /></p>
<p>Sometimes though, you might not remember the exact name of the symbol you’re looking for. In that case, you can see all the symbols present in your editor by hitting <strong>Ctrl + Shift + Period.</strong></p>
<blockquote>
<p>💡 A <em>symbol</em> refers to the name of a variable, function, or class that has been defined in your code.</p>
</blockquote>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A23?alt=media&amp;token=556be5c2-3fe2-494f-886b-5a9764498c13" alt="Use Ctrl + Shift + . to search through the symbols in your document " /></p>
<p>But what if you need to search for something in your entire project? You can do that as well with the <strong>Ctrl + P</strong> search bar. All you have to do is type in a <code>#</code> before your query.</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A25?alt=media&amp;token=36373e06-6a78-44bf-a030-eb853bec113b" alt /></p>
<p>The key is to use the computer's ability to search things quickly as often as possible. They apply to ANY program. Not only do these techniques help you improve as a developer, but you’ll improve at anything that requires software.</p>
<h2 id="heading-the-commands-and-the-terminal">The Commands and the Terminal</h2>
<p>Terminals are tricky. While super developers are able to remember a huge array of commands, most of us can rely on the power of the VS Code <strong>Command Pallet.</strong> </p>
<p>The command pallet is actually within the <strong>Ctrl + P or CMD + P</strong> search bar you saw earlier. But, we can type a <code>&gt;</code> before our command to search through the available commands.</p>
<p>It’s so important that instead of typing the &gt;, you can automatically open it by using the  <strong>Ctrl + SHIFT + P</strong> </p>
<p>For example, let's search through the commands Flutter provides.</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A27?alt=media&amp;token=6bcbab40-5b79-45bc-b395-4a19ae2b5b40" alt="Use the command pallet to search through the available flutter commands." /></p>
<p>Unfortunately, sometimes VS Code isn’t aware of every available command. We can find extensions that add more, but eventually, we will have to use the terminal.</p>
<p>The good thing is that VS Code’s integrated terminal is awesome! Here are some tips and tricks on how to use it effectively.</p>
<p>You can open an integrated terminal in VS Code quite easily. Either go to the bar at the top and select <strong>terminal &gt; new terminal.</strong> Or use the key binding <strong><code>ctrl  + shift +</code></strong><em><strong><code>backtick</code></strong></em> or <strong><code>cmd + shift +</code></strong><em><strong><code>backtick</code></strong></em><strong>.</strong> The easiest way though is to pull up on the bottom of your screen, like so: </p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A28?alt=media&amp;token=99f04714-5d24-49b9-a410-4b912e5f3dfe" alt /></p>
<p>Once we’ve opened the terminal, Sometimes we need to create a new terminal. We can do this with the terminal controls in the top right of the terminal area. Hit the + <strong>button</strong>, and then select the type of terminal you’d like to open, such as <strong>Command Prompt</strong> or <strong>PowerShell</strong> on windows.</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A30?alt=media&amp;token=6c55bf70-4040-4653-b7ea-9feb2a9354c6" alt /></p>
<p>You can create multiple terminals, split terminals, and organize them with colors. Bonus: investigate these different options, and think of some situations where they might be useful.</p>
<h1 id="heading-git-in-vs-code">Git in VS Code</h1>
<p>Because git is SO important, we will cover most of this topic in more detail in our chapter on git. The important takeaway is that VS Code’s built-in git functionality is usually all you need, and it’s easier (and less error-prone) than using the command line.</p>
<p>To access VS Code’s git menu, click the branch icon on the left toolbar of VS-Code</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A31?alt=media&amp;token=1239c9cc-4d2b-413d-8a17-9851e94b46bc" alt="Using the vscode command line to stage and commit new changes" /></p>
<p>If this doesn’t make any sense, check out the chapter on git for an overview of the fundamentals!</p>
<h1 id="heading-splitting-editors">Splitting editors</h1>
<p>You often need to work on a system that relies on two files at once. For instance, when you’re writing a widget and simultaneously placing it on a screen. With VS Code, we can simultaneously edit two separate files by “splitting” our editor. </p>
<p>Let's say I’m adding the component <code>GradientButton1</code> from the file <code>gradient_button_1.dart</code> into my main screen.  If I have both my <code>main.dart</code> and the <code>gradient_button_1.dart</code> files open, I can split my editor by dragging one of the tabs to the left or right of my open editor.</p>
<p><img src="https://firebasestorage.googleapis.com/v0/b/flutterbricks-public.appspot.com/o/courses%252F19%3A34%3A33?alt=media&amp;token=23cd2409-e867-4e62-bf91-67e02e6a4092" alt="Splitting you editor by dragging a open editor from the top tab" /></p>
<p>Now I can simultaneously edit the widget’s declaration and <em>instantiation</em></p>
<blockquote>
<p>💡 Instantiation <em>-</em> A call to a Function, Widget, or Class that’s already been declared</p>
</blockquote>
<p>You can have as many split editors as you’d like, however, I tend to find that on most screens two is more than enough.</p>
<h1 id="heading-practice-practice-practice">Practice. Practice. Practice.</h1>
<p>Development is like martial art. If you practice the right techniques, you’ll grow into a coding ninja in no time! </p>
<p>As you progress, make sure you’re deliberately learning new techniques, tricks, and tools that will help you develop faster. Programming is a constantly evolving art form, and you can certainly improve on these techniques. Stay curious!</p>
<h1 id="heading-takeaways"><strong>Takeaways</strong></h1>
<ul>
<li><p>VS Code has an incredible set of capabilities. You’re wasting your time if you don’t learn them!</p>
</li>
<li><p>Your keyboard is faster than your mouse. Learning the key bindings for any program can speed you up significantly</p>
</li>
<li><p>Whenever possible, <strong>stop searching manually</strong> and use VS Codes’ built-in search functionality. (<strong>Ctrl + P, Ctrl + F, CTRL + SHIFT + P)</strong></p>
</li>
<li><p>You can open an integrated terminal in VS Code easily.</p>
</li>
<li><p>Using <strong>Git</strong> in VS Code is easy, and less error-prone than using the command line</p>
</li>
<li><p>Practice these skills by making an effort to use them as you develop.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[How to connect your Flutter web app with MetaMask & Web3 — Tutorial]]></title><description><![CDATA[With the rise of decentralized applications, I often get asked on my Instagram if Flutter is suitable for developing on the Web3. Today, I prepared this quick tutorial where I will show you how you can connect your Flutter web app with Web3 via MetaM...]]></description><link>https://blog.sideguide.dev/how-to-connect-your-flutter-web-app-with-metamask-and-web3-tutorial</link><guid isPermaLink="true">https://blog.sideguide.dev/how-to-connect-your-flutter-web-app-with-metamask-and-web3-tutorial</guid><category><![CDATA[Flutter]]></category><category><![CDATA[webdev]]></category><category><![CDATA[Web3]]></category><category><![CDATA[Dart]]></category><category><![CDATA[Flutter Examples]]></category><dc:creator><![CDATA[SideGuide]]></dc:creator><pubDate>Wed, 01 Jun 2022 03:32:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/L2QB-rG5NM0/upload/v1654054396720/h188adGdY.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>With the rise of decentralized applications, I often get asked on my Instagram if Flutter is suitable for developing on the Web3. Today, I prepared this quick tutorial where I will show you how you can connect your Flutter web app with Web3 via MetaMask. Inspired by this YouTube video and the example on this package.</p>
<p>First, make sure you have installed and created an account with MetaMask.</p>
<p>We will be using the testing network: Rinkeby. On your wallet make sure you change to that network on the top right.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054074453/mUm27hb03.png" alt="image.png" /></p>
<p>To start, create a new Flutter project and add these dependencies to your pubspec.yaml file:</p>
<pre><code class="lang-yaml"><span class="hljs-attr">flutter_web3:</span> <span class="hljs-string">^2.1.6</span>

<span class="hljs-attr">provider:</span> <span class="hljs-string">^6.0.0</span>
</code></pre>
<p>We’ll be using flutter_web3 to connect to a chain and provider for state management.</p>
<p>Now, let’s create a MetaMask provider which will be responsible for connecting and holding its current state.</p>
<p>Create a file called metamask_provider.dart
<img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054169064/omWL-Aci5.png" alt="Screen Shot 2022-05-31 at 11.29.26 PM.png" /></p>
<p>The provider should extend ChangeNotifier so we can update the changes accordingly in the UI.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054186428/1Nd46ojNY.png" alt="image.png" /></p>
<p>We will be testing it out on the Rinkeby test network which is represented by the number 4 on the operating chain.</p>
<p>Our connect function will request the MetaMask account via the ethereum global object that the library flutter_web3 provides. If there is an account we will get it and save it to our current address variable. We’ll also save the chain we are operating in and call change notifier to update the UI accordingly.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054196554/7wMnEhtv6.png" alt="image.png" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054200602/wIIl3rL3L.png" alt="image.png" /></p>
<p>Make sure to also create a reset function that will reset the current address and the current chain.</p>
<p>And let’s finish off the provider by writing a start function that will be responsible for resetting everything if there is any change in the account or chain.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054208827/NPJux2gfj.png" alt="image.png" /></p>
<p>Awesome. You’re almost done.</p>
<p>Now copy this simple UI so you can test it. This basically uses ChangeNotifierProvider to update the UI based on the connection with MetaMask.</p>
<pre><code class="lang-dart"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Web3Home</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">StatelessWidget</span> </span>{
  <span class="hljs-keyword">const</span> Web3Home({Key? key}) : <span class="hljs-keyword">super</span>(key: key);

  <span class="hljs-meta">@override</span>
  Widget build(BuildContext context) {
    <span class="hljs-keyword">return</span> Scaffold(
      backgroundColor: <span class="hljs-keyword">const</span> Color(<span class="hljs-number">0xFF181818</span>),
      body: ChangeNotifierProvider(
          create: (context) =&gt; MetaMaskProvider()..start(),
          builder: (context, child) {
            <span class="hljs-keyword">return</span> Container(
              child: 
                Center(
                  child: Consumer&lt;MetaMaskProvider&gt;(
                    builder: (context, provider, child) {
                      <span class="hljs-keyword">late</span> <span class="hljs-keyword">final</span> <span class="hljs-built_in">String</span> message;
                      <span class="hljs-keyword">if</span> (provider.isConnected &amp;&amp; provider.isInOperatingChain) {
                        message = <span class="hljs-string">'Connected'</span>;
                      } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (provider.isConnected &amp;&amp;
                          !provider.isInOperatingChain) {
                        message =
                            <span class="hljs-string">'Wrong chain. Please connect to <span class="hljs-subst">${MetaMaskProvider.operatingChain}</span>'</span>;
                      } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (provider.isEnabled) {
                        <span class="hljs-keyword">return</span> Column(
                          mainAxisSize: MainAxisSize.min,
                          children: [
                            MaterialButton(
                              onPressed: () =&gt;
                                  context.read&lt;MetaMaskProvider&gt;().connect(),
                              color: Colors.white,
                              padding: <span class="hljs-keyword">const</span> EdgeInsets.all(<span class="hljs-number">0</span>),
                              child: Row(
                                mainAxisSize: MainAxisSize.min,
                                children: [
                                  Image.network(
                                    <span class="hljs-string">'https://i0.wp.com/kindalame.com/wp-content/uploads/2021/05/metamask-fox-wordmark-horizontal.png?fit=1549%2C480&amp;ssl=1'</span>,
                                    width: <span class="hljs-number">250</span>,
                                  ),
                                ],
                              ),
                            ),
                          ],
                        );
                      } <span class="hljs-keyword">else</span> {
                        message = <span class="hljs-string">'Please use a Web3 supported browser.'</span>;
                      }
                      <span class="hljs-keyword">return</span> Text(
                          message,
                          textAlign: TextAlign.center,
                          style: TextStyle(color: Colors.white),
                      );
                    },
                  ),
                ),
            );
          }),
    );
  }
}
</code></pre>
<p>Unfortunately, MetaMask does not work on debug mode so run your Flutter app using this command:</p>
<p>flutter run -d web-server</p>
<p>This should spawn a server on your local host at some port. Launch it using the browser you have MetaMask on and you should get something like this:</p>
<p>Note: your port will be different</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054249582/sd-YCCT5t.png" alt="image.png" /></p>
<p>Click on the MetaMask Button:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054260192/mbNavov7k.png" alt="image.png" /></p>
<p>It should open up a pop-up dialog asking you to connect with one of your accounts. After clicking through the steps you should get a connected message on your app :)</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054270251/OeW65bG5w.png" alt="image.png" /></p>
<p>Perfect! Now you have successfully finished the first step in creating an application for Web3.</p>
<p>Thank you for reading! Leave a clap if you enjoyed it and let us know in the comments if you want more tutorials like this.</p>
<p>Learn Flutter where you code:
Visit https://sideguide.dev/courses/flutter</p>
<p>Follow us on Instagram!</p>
<p>Important: Only connect your account with apps you trust. Flutter Guide is not responsible for any mistake you make with your crypto/coding endeavors.</p>
]]></content:encoded></item><item><title><![CDATA[What is Dart?]]></title><description><![CDATA[Dart: Hello World!
What is Dart?
Dart is an object-oriented programming language released by Google to help build modern web, mobile, and desktop applications. It has tons of awesome features that you will learn throughout this course. 
Your first Da...]]></description><link>https://blog.sideguide.dev/what-is-dart</link><guid isPermaLink="true">https://blog.sideguide.dev/what-is-dart</guid><dc:creator><![CDATA[SideGuide]]></dc:creator><pubDate>Thu, 20 Feb 2020 22:37:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054928875/yaKXs1b4z.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-dart-hello-world">Dart: Hello World!</h1>
<h3 id="heading-what-is-dart">What is Dart?</h3>
<p>Dart is an object-oriented programming language released by Google to help build modern web, mobile, and desktop applications. It has tons of awesome features that you will learn throughout this course. </p>
<h3 id="heading-your-first-dart-project">Your first Dart project</h3>
<p>You can easily create and run your first Dart application with VS Code.</p>
<ul>
<li><p>Press <code>CMD + SHIFT + P</code> on Mac or <code>CTRL + SHIFT + P</code> on Windows</p>
</li>
<li><p>Choose <code>Dart: New Project</code></p>
</li>
<li><p>Select <code>Simple Console Application</code></p>
</li>
<li><p>Select a folder where you want the course to be located</p>
</li>
<li><p>Name your project: <code>dart_application_1</code></p>
</li>
</ul>
<p>After completing these steps, you should see a whole Dart project set up for you in VS Code:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054928875/yaKXs1b4z.png" alt /></p>
<p>If you're a complete beginner, it's important to note that a “project” is just a folder on your computer where all the files Dart needs to create <strong>your program</strong> live. There are many different files, all with different roles and purposes - don't worry if it seems confusing at first.</p>
<h3 id="heading-where-it-all-begins">Where it all begins 🙂</h3>
<p>Dart and many other languages have a main() function that is the program's entry point. In technical terms, this is where your program begins executing. Simply put, <strong>it's where everything in your app begins.</strong></p>
<p>You can find this function in the <code>dart_application_1.dart</code> file in your <code>/bin</code> directory.</p>
<p>Let's erase everything in this file and create our main function.</p>
<p>The main() function is written in curly brackets ({}). Flutter will run the code in these brackets once your app starts.</p>
<pre><code class="lang-dart"><span class="hljs-keyword">void</span> main(){

}
</code></pre>
<p>let’s start by printing something to the console with a print statement.</p>
<pre><code class="lang-dart"><span class="hljs-keyword">void</span> main(){
    <span class="hljs-built_in">print</span>(<span class="hljs-string">"Hello World"</span>); <span class="hljs-comment">//add this line</span>
}
</code></pre>
<p>You can use (or call) the function <code>print</code> to print anything. <code>print</code> takes in an object as a parameter (The item that goes inside the parentheses) and prints a String (text) representation of that object. Simply put, <strong>it tries to print whatever you put in the parentheses!</strong></p>
<p>In this case, we want to print Hello World, so we write “Hello World” inside print. <strong>The quotes are essential -</strong> we'll explain why in the coming lesson. </p>
<blockquote>
<p>🤔 Try removing the quotes and see what happens. What does your Terminal say?</p>
</blockquote>
<h3 id="heading-lets-run-the-program">Let's run the program. 🚀</h3>
<p>There are two main ways to run your program:</p>
<ul>
<li><p>Press <strong>F5</strong> and VS Code will automatically run your program with the debugger.</p>
<blockquote>
<p>💡 Debugger: A program that assists in detecting and correcting errors in other computer programs.</p>
<p>💡  Terminal/Console: A terminal is where you can give your program's commands as text, and see what output (or errors) your programs create.</p>
</blockquote>
</li>
<li><p>A more advanced way to start your app is to use your computer's Terminal. To do this, go to the top bar of your VS Code window and press ‘Terminal’ then ‘Create New Terminal,’ which should open a terminal on the bottom of your VS Code window. There, you can type <code>dart run,</code></p>
</li>
<li><p>Make sure the Terminal is already inside your project folder. If it is not, navigate using the <code>cd</code> commands. You can learn more about Terminals <a target="_blank" href="https://tutorials.codebar.io/command-line/introduction/tutorial.html">here</a></p>
<blockquote>
<p>❗ The “Terminal” and “Debug Console” are Different! The “Terminal is your computer's Terminal (CMD on Windows, Terminal on Mac). The DEBUG CONSOLE is where the Dart debugger prints output and errors</p>
</blockquote>
</li>
</ul>
<p>Voila! You should now see a message popping up displaying in your console: “Hello World.”</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1654054931179/ZqrWOo29m.png" alt /></p>
<p>Learn Flutter where you code: Visit sideguide.dev/courses/flutter</p>
<h1 id="heading-takeaways">Takeaways</h1>
<ul>
<li><p>You can create a Dart project by pressing <code>CTRL+SHIT/CMD+P</code> and selecting <code>Dart: New Project</code></p>
</li>
<li><p>Debug Console and Terminal are 2 different things</p>
</li>
<li><p>You can run your program using the Debug play button in VS Code or typing <code>dart run</code> in the terminal</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Dart: Types of Comments]]></title><description><![CDATA[Types of comment
Single line Comments
Single line comments are very useful to describe quick snippets of code. Type // and type your comment above the code.
```dart
// Comments out this line!
print(hello);
```
Block Comments
But, what if we we want t...]]></description><link>https://blog.sideguide.dev/dart-comments</link><guid isPermaLink="true">https://blog.sideguide.dev/dart-comments</guid><dc:creator><![CDATA[SideGuide]]></dc:creator><pubDate>Thu, 20 Feb 2020 22:37:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/Gll-v69L8iA/upload/v1654056119673/n1kttBfgT.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-types-of-comment">Types of comment</h1>
<h2 id="heading-single-line-comments">Single line Comments</h2>
<p>Single line comments are very useful to describe quick snippets of code. Type // and type your comment above the code.</p>
<pre><code><span class="hljs-string">``</span><span class="hljs-string">`dart
// Comments out this line!
print(hello);
`</span><span class="hljs-string">``</span>
</code></pre><h2 id="heading-block-comments">Block Comments</h2>
<p>But, what if we we want to comment multiple lines at once? That's where <em>block comments</em> come in; </p>
<pre><code>```dart
/* var cat = <span class="hljs-string">"cat"</span>;
var dog = <span class="hljs-string">"dog"</span>;
print(cat == dog); */

notIgnored = <span class="hljs-string">"Dragon"</span>;
```
</code></pre><blockquote>
<p>❗ Block comments are designed for commenting out code. If you're writing instructions, use single-line comments!  </p>
</blockquote>
<h2 id="heading-doc-comments">Doc Comments</h2>
<p>In larger projects with more people, it's helpful to extract the comments you've written into documentation that can be read somewhere besides the code, like a website. Doing this manually would be annoying! So, Dart gives us a particular type of comment that will be recognized by a special comment extractor later. We can create these comments with three slashes <code>///</code></p>
<pre><code class="lang-dart"><span class="hljs-comment">///<span class="markdown">This variable contains the greeting the program will give the user</span></span>
<span class="hljs-built_in">String</span> greeting = <span class="hljs-string">"Hello Programmer! I'm your trusty computer"</span>;
</code></pre>
<p>Learn Flutter where you code
Visit https://sideguide.dev/courses/flutter</p>
]]></content:encoded></item></channel></rss>