<?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: Praveen Varma</title>
    <description>The latest articles on Forem by Praveen Varma (@geekyprawins).</description>
    <link>https://forem.com/geekyprawins</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%2F666975%2F039cbad4-ca1d-481c-b7a7-053c8212c3c4.jpeg</url>
      <title>Forem: Praveen Varma</title>
      <link>https://forem.com/geekyprawins</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/geekyprawins"/>
    <language>en</language>
    <item>
      <title>Anatomy of  a Flutter App</title>
      <dc:creator>Praveen Varma</dc:creator>
      <pubDate>Mon, 26 Jul 2021 04:22:23 +0000</pubDate>
      <link>https://forem.com/geekyprawins/anatomy-of-a-flutter-app-56g7</link>
      <guid>https://forem.com/geekyprawins/anatomy-of-a-flutter-app-56g7</guid>
      <description>&lt;h2&gt;
  
  
  Widgets, widgets and widgets!
&lt;/h2&gt;

&lt;p&gt;So, as I mentioned before, everything inside a &lt;strong&gt;Flutter&lt;/strong&gt; app is a &lt;em&gt;&lt;a href="https://flutter.dev/docs/development/ui/widgets-intro" rel="noopener noreferrer"&gt;widget&lt;/a&gt;&lt;/em&gt;. And you build widgets upon widgets just like Lego blocks on Lego blocks in order to create your app.&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%2Fuyiacr5px1qcfiu9ffuk.jpg" 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%2Fuyiacr5px1qcfiu9ffuk.jpg" alt="lego-blocks"&gt;&lt;/a&gt;&lt;br&gt;
So let's say that we decided to create a brand new app.&lt;/p&gt;

&lt;p&gt;The first thing we might do is we might create a &lt;em&gt;&lt;a href="https://api.flutter.dev/flutter/material/Scaffold-class.html" rel="noopener noreferrer"&gt;Scaffold&lt;/a&gt;&lt;/em&gt;. And this is just a blank screen for our app. And inside the scaffold, we're going to add an app bar at the top. And this is a pre-built widget that simply looks like an app bar and acts like an app bar. And it's also super easy to create.&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%2Fn9bnzyhkvc9yjhd9rm08.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%2Fn9bnzyhkvc9yjhd9rm08.png" alt="flutter-appbar-layout"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, the other thing I'm going to put into my scaffold is a container. And this container is just a box and it's going to contain the content of my app. Now, the container is going to have a column. So this is a column. And so now we can put widgets inside the column that stack vertically.&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%2Fb7kj4tpi4uad58f87e1x.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%2Fb7kj4tpi4uad58f87e1x.png" alt="flutter-container"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, for example, the first thing I might put into my column - at the top - is a row. And the second thing is - I might put in - a piece of text. So now I have a column with two items - with two widgets: a row at the top and some text at the bottom. Now I can go deeper into my widget tree. And in my row, I'm going to add some text and an icon.&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%2Fgs88debfocogruxizmuf.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%2Fgs88debfocogruxizmuf.png" alt="phone"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So when I want widgets to be positioned vertically - one on top of the other - then I'll use a column to lay them out. If I want widgets to be side by side horizontally, then I'll use a row. And if I wanted to add in a piece of text, then I would use a text widget. If I wanted to add an icon, then I would use an icon widget. If I want to add an image, then I would use an image widget.&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%2Fwejuwm9psttfnhchij0l.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%2Fwejuwm9psttfnhchij0l.png" alt="0_7hLwrQ9PjkOa_hFQ"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So you get the point.&lt;/p&gt;

&lt;p&gt;And by the end of building our app, we end up with a widget tree like what you see on the right here&lt;br&gt;
Now, our widget tree is just a whole bunch of widgets that are nested within each other.&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%2Fe1v5kwucqtzxxzrv86vk.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%2Fe1v5kwucqtzxxzrv86vk.PNG" alt="widgets"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for the read,&lt;br&gt;
Praveen Varma :)&lt;br&gt;
More Flutter repos can be found &lt;a href="https://github.com/geekyprawins" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>android</category>
      <category>ios</category>
      <category>dart</category>
    </item>
    <item>
      <title>What gives Flutter the edge over its other alternatives?</title>
      <dc:creator>Praveen Varma</dc:creator>
      <pubDate>Fri, 16 Jul 2021 06:54:41 +0000</pubDate>
      <link>https://forem.com/geekyprawins/what-gives-flutter-the-edge-over-its-other-alternatives-22h7</link>
      <guid>https://forem.com/geekyprawins/what-gives-flutter-the-edge-over-its-other-alternatives-22h7</guid>
      <description>&lt;p&gt;&lt;em&gt;Hey there! In the previous post we have walked through the Introduction of &lt;strong&gt;&lt;a href="https://flutter.dev" rel="noopener noreferrer"&gt;Flutter&lt;/a&gt;&lt;/strong&gt;, incase you haven't read that, you can read it &lt;a href="https://dev.to/geekyprawins/understanding-flutter-a-beginner-s-guide-2l6h"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;br&gt;
Now let's see what makes Flutter, the projected next big thing in Mobile App Development!&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%2F18r9vvhueh1okb3dtvwp.jpg" 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%2F18r9vvhueh1okb3dtvwp.jpg" alt="memeF1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are as of mid-2020, over &lt;strong&gt;50,000&lt;/strong&gt; &lt;em&gt;Flutter&lt;/em&gt; apps on Google Playstore. Over half a million developers use &lt;em&gt;Flutter&lt;/em&gt; every month and how much they love it is evident in forums of &lt;a href="https://github.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://stackoverflow.com" rel="noopener noreferrer"&gt;StackOverflow&lt;/a&gt;. Clearly, Flutter is emerging a winner in the &lt;em&gt;cross-platform app&lt;/em&gt; development space and proving a worthy competitor to &lt;em&gt;React Native&lt;/em&gt;. &lt;br&gt;
In fact, the popularity of &lt;em&gt;Flutter&lt;/em&gt; has soared significantly despite its being such a &lt;strong&gt;young&lt;/strong&gt; framework.&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%2Fnrlm6g87h29jvemz9stm.jpeg" 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%2Fnrlm6g87h29jvemz9stm.jpeg" alt="f2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;How unique is Flutter?&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Now as I said in the previous post, &lt;em&gt;Flutter&lt;/em&gt; simply compile that &lt;em&gt;Dart&lt;/em&gt; code to native code for these different platforms and that happens with the help of the &lt;em&gt;Flutter SDK&lt;/em&gt; and as a result, you get real apps spit out with &lt;strong&gt;highly optimized high performance&lt;/strong&gt; code that's based on your code but that's not your code itself, instead it's the compiled version of that code and therefore you really ship code that runs on the different platforms and that's optimized and high performant because performance is actually a huge advantage of Flutter apps, Flutter out of the box gives you high performance applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;The Flutter advantage&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;It's important to understand that Flutter does not use platform primitives. Now what do I mean with that? We're having our Flutter app and we're targeting iOS and Android. Now if we want to add a button then in Flutter with this UI as Code approach, we do so by adding a RaisedButton.&lt;/p&gt;

&lt;p&gt;Now this is just an instruction in your Flutter code which tells Flutter to render a button in that part of your widget tree.&lt;br&gt;
Now you could think that what happens when the code gets compiled to that native code is that this &lt;code&gt;RaisedButton&lt;/code&gt; is translated to "hey &lt;em&gt;iOS&lt;/em&gt;, please give me your default button", which would be a &lt;code&gt;UI button&lt;/code&gt; element in the iOS development world and for &lt;em&gt;Android&lt;/em&gt;, a &lt;code&gt;widget.button&lt;/code&gt;, that we get these native buttons which are of course part of the native development environments and that's &lt;strong&gt;NOT&lt;/strong&gt; what happens!&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%2Fxp32bchqtk9hj20i7wi1.jpg" 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%2Fxp32bchqtk9hj20i7wi1.jpg" alt="flutter_icon_1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead &lt;em&gt;Flutter&lt;/em&gt; has its own implementations and that's really important to understand and to keep in mind, &lt;strong&gt;directly controls every pixel on the screen&lt;/strong&gt;. So Flutter does not compile your code to some native equivalence or native alternatives, instead Flutter ships with its own engine which controls the entire screen, everything the user sees and renders every pixel on its own and that gives Flutter a lot of control and a lot of flexibility, sounds great right?&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%2F4uv0agpybd8ikmwmsiwx.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%2F4uv0agpybd8ikmwmsiwx.png" alt="9amcr9hg112df5ckybbh"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Conclusion&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Now you don't have to care too much about that because Flutter does it for you but it's important to be aware of that because that gives Flutter more control and less limitations and therefore, you implicitly, indirectly benefit from that.&lt;br&gt;
You have a good performance, you have a lot of power, a lot of things you can configure, you have full control over how you want to build your user interface!&lt;/p&gt;

&lt;p&gt;Thanks for giving this a read, have a great day!&lt;br&gt;
&lt;a href="https://github.com/geekyprawins" rel="noopener noreferrer"&gt;Praveen Varma&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>ios</category>
      <category>android</category>
      <category>dart</category>
    </item>
    <item>
      <title>Understanding Flutter - a beginner's guide</title>
      <dc:creator>Praveen Varma</dc:creator>
      <pubDate>Thu, 15 Jul 2021 05:51:19 +0000</pubDate>
      <link>https://forem.com/geekyprawins/understanding-flutter-a-beginner-s-guide-2l6h</link>
      <guid>https://forem.com/geekyprawins/understanding-flutter-a-beginner-s-guide-2l6h</guid>
      <description>&lt;h2&gt;
  
  
  &lt;em&gt;What is Flutter?&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://flutter.dev" rel="noopener noreferrer"&gt;Flutter&lt;/a&gt;&lt;/strong&gt; is a tool that allows to build &lt;em&gt;native cross-platform apps&lt;/em&gt; and that means for &lt;em&gt;iOS&lt;/em&gt; and &lt;em&gt;Android&lt;/em&gt;, with the one programming language and codebase. So let's have a closer look at this nice sentence here. Important is that we build &lt;em&gt;native cross-platform apps&lt;/em&gt;, so we build both an &lt;em&gt;iOS&lt;/em&gt; app and an &lt;em&gt;Android&lt;/em&gt; app. We're not building a &lt;em&gt;web app&lt;/em&gt; that runs in the browser, we're not building an app that gets &lt;em&gt;wrapped&lt;/em&gt; by native apps, we build real apps, two different kinds of apps in the end for &lt;em&gt;iOS&lt;/em&gt; and &lt;em&gt;Android&lt;/em&gt;, which you then distribute through the different app stores, so through the &lt;strong&gt;Apple App Store&lt;/strong&gt; and the &lt;strong&gt;Google Play store&lt;/strong&gt;, that's what you get as a result.&lt;/p&gt;

&lt;p&gt;Now you get there by using &lt;em&gt;one&lt;/em&gt; programming language, so that you don't have to learn two different programming languages, one for &lt;em&gt;iOS&lt;/em&gt;, one for &lt;em&gt;Android&lt;/em&gt;, instead you have one programming language, &lt;strong&gt;&lt;a href="https://dart.dev" rel="noopener noreferrer"&gt;Dart&lt;/a&gt;&lt;/strong&gt; and also one &lt;em&gt;codebase&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So you work in one project, you write your code once and you still get two different apps as a result and that's the cool thing about Flutter, you only learn one programming language, you only write your code once and you get two apps. Without Flutter, you would normally build an &lt;strong&gt;iOS&lt;/strong&gt; app by writing some &lt;em&gt;&lt;a href="https://developer.apple.com/swift/" rel="noopener noreferrer"&gt;Swift&lt;/a&gt;&lt;/em&gt; or &lt;em&gt;&lt;a href="https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html" rel="noopener noreferrer"&gt;Objective C&lt;/a&gt;&lt;/em&gt; code and using the iOS development environment and for &lt;strong&gt;Android&lt;/strong&gt;, you would be using &lt;em&gt;&lt;a href="//www.java.com"&gt;Java&lt;/a&gt;&lt;/em&gt; with the Android framework or you would be using &lt;em&gt;&lt;a href="https://kotlinlang.org" rel="noopener noreferrer"&gt;Kotlin&lt;/a&gt;&lt;/em&gt; and also the Android development environment and you would have to learn all these different languages and tools and you would have to write two totally different apps or work in two totally different projects and with Flutter, that's not the case, one programming language and one codebase!&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%2F8ghtekgpp5iiogdmfa46.jpg" 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%2F8ghtekgpp5iiogdmfa46.jpg" alt="Dart-Flutter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;How it works?&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;The term &lt;em&gt;Flutter&lt;/em&gt; refers to two major things. One is an &lt;em&gt;&lt;a href="https://www.redhat.com/en/topics/cloud-native-apps/what-is-SDK" rel="noopener noreferrer"&gt;SDK&lt;/a&gt;&lt;/em&gt;, a &lt;em&gt;Software Development Kit&lt;/em&gt;, you could say a collection of tools that allows you to write one codebase with one programming language because it includes tools to then &lt;em&gt;compile&lt;/em&gt; this code, which normally would not run on &lt;em&gt;iOS&lt;/em&gt; and &lt;em&gt;Android&lt;/em&gt;, into &lt;em&gt;native machine code&lt;/em&gt; that does run on these platforms because if there would be one programming language that would work on both platforms, we wouldn't need &lt;em&gt;Flutter&lt;/em&gt;, but there isn't one!&lt;/p&gt;

&lt;p&gt;Now therefore, the one programming language Flutter uses doesn't work on &lt;em&gt;iOS&lt;/em&gt; and &lt;em&gt;Android&lt;/em&gt;, so it needs to be compiled to &lt;em&gt;native machine code&lt;/em&gt; for &lt;em&gt;iOS&lt;/em&gt; and native machine code for &lt;em&gt;Android&lt;/em&gt; so that we have code that has run on these platforms and that compilation task, along with a couple of other things, that's all part of Flutter but of course, it's not just a collection of tools, it also gives you everything you need to create beautiful applications.&lt;/p&gt;

&lt;p&gt;It gives you a &lt;em&gt;framework&lt;/em&gt;, a &lt;em&gt;widget library&lt;/em&gt; for that one programming language which is called &lt;strong&gt;Dart&lt;/strong&gt; which you can use to build beautiful Flutter apps.&lt;/p&gt;

&lt;p&gt;It gives you a vast collection of reusable &lt;em&gt;UI&lt;/em&gt; building blocks, these so-called &lt;em&gt;&lt;a href="https://developer.android.com/guide/topics/appwidgets/overview" rel="noopener noreferrer"&gt;widgets&lt;/a&gt;&lt;/em&gt;, so these are things like buttons, tabs, text inputs, drop downs, you get all of that out of the box. You can style them and customize them and then you build user interfaces with these tools. In addition, you get a couple of utility functions and generally, some &lt;em&gt;&lt;a href="https://pub.dev/" rel="noopener noreferrer"&gt;packages&lt;/a&gt;&lt;/em&gt; that help you build what your users see and what your users interact with and then that code which you built with the help of that framework, that is then compiled native machine code with the help of the &lt;em&gt;SDK&lt;/em&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%2Fdk9ky8qk45g30ysey4fj.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%2Fdk9ky8qk45g30ysey4fj.png" alt="Why Dart?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Dart&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Now as I mentioned, Flutter uses a programming language called &lt;em&gt;Dart&lt;/em&gt;. &lt;em&gt;Dart&lt;/em&gt; is a programming language which is focused on building front-end user interfaces, front-end apps. It's not limited to building mobile apps, that's just what Flutter uses it for but &lt;em&gt;Dart&lt;/em&gt; is independent of &lt;em&gt;Flutter&lt;/em&gt; and you can also build web apps with it. So it's a programming language built to make it really simple to build &lt;em&gt;front-end user interfaces&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;It was developed by &lt;a href="//www.google.com"&gt;Google&lt;/a&gt;, just like Flutter, so these are actually two independent teams in Google but of course they're working together to improve each other and therefore, we have a hand in hand solution here and in case you already have some programming experience, it's an &lt;a href="https://en.wikipedia.org/wiki/Object-oriented_programming" rel="noopener noreferrer"&gt;object oriented&lt;/a&gt; and strongly typed language and its syntax is a bit like a mixture of &lt;em&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript" rel="noopener noreferrer"&gt;JavaScript&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="//www.java.com"&gt;Java&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="https://docs.microsoft.com/en-us/dotnet/csharp/" rel="noopener noreferrer"&gt;C#&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;In a nutshell&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Flutter&lt;/em&gt; builds up on &lt;em&gt;Dart&lt;/em&gt;, it's a framework for &lt;em&gt;Dart&lt;/em&gt; and &lt;em&gt;Dart&lt;/em&gt; actually is the programming language which we're using, Flutter then just is a collection of tools, a set of features, utility functions and these widgets which are implemented using Dart, so that you don't have to reinvent the wheel there but you can write your own Dart code and use these existing widgets in your code so that you don't have to again reinvent how a button should look like and work but use the pre-built button instead and then just customize it to your requirements, that's how this works.&lt;br&gt;
And in addition as mentioned, Flutter also gives you that SDK, so all these tools for compiling your code in the end.&lt;/p&gt;

&lt;p&gt;Thanks for reading, hope you have a great day :)&lt;br&gt;
Find me on GitHub &lt;a href="https://github.com/geekyprawins" rel="noopener noreferrer"&gt;here&lt;/a&gt; to have a look at my Flutter repositories!😊&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>android</category>
      <category>ios</category>
      <category>dart</category>
    </item>
  </channel>
</rss>
