<?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: Sree Gayathri Sidamsetti</title>
    <description>The latest articles on DEV Community by Sree Gayathri Sidamsetti (@sree_gaya3).</description>
    <link>https://dev.to/sree_gaya3</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%2F506393%2F0e864d29-a255-4b10-994d-8a1538e793f1.png</url>
      <title>DEV Community: Sree Gayathri Sidamsetti</title>
      <link>https://dev.to/sree_gaya3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sree_gaya3"/>
    <language>en</language>
    <item>
      <title>Screenless Display Technology</title>
      <dc:creator>Sree Gayathri Sidamsetti</dc:creator>
      <pubDate>Sun, 18 Dec 2022 16:02:59 +0000</pubDate>
      <link>https://dev.to/sree_gaya3/screenless-display-technology-30ff</link>
      <guid>https://dev.to/sree_gaya3/screenless-display-technology-30ff</guid>
      <description>&lt;p&gt;Hello 👋 and Welcome to an exciting exploration of the world of technology !! If you're someone who loves staying up-to-date on the latest technology, you will enjoy what's in store for you in this article.&lt;/p&gt;

&lt;p&gt;I recently came across Screenless Displays and was immediately fascinated by this innovative technology. I have only seen them in movies📽 and TV shows and never thought they could exist in the real world.&lt;/p&gt;

&lt;p&gt;I spent the next few days learning everything I could about this technology. I'm so excited to share with you what I've learned about this amazing technology and why I think this could revolutionize the way we access and use information on devices.&lt;/p&gt;

&lt;p&gt;So grab a cup of tea (or coffee, if that's more your style 😋) and let's dive into the amazing world of screenless displays together !!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fyvv4ww5emwvt3tzl64n9.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fyvv4ww5emwvt3tzl64n9.gif" width="650" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Imagine being able to watch your favorite movies or TV shows without ever having to look at a screen again. Sounds like a dream, right? Well, with Screenless Display Technology, &lt;em&gt;it's no longer just a dream - it's a reality&lt;/em&gt; 🤩. This amazing technology allows you to experience images and videos as if they are floating right in front of you using lasers, special lights, holography, or projection to create the illusion.&lt;/p&gt;

&lt;p&gt;No more straining your eyes to see a tiny screen or being tied to a device. With Screenless Display, you can enjoy and access your content in a whole new way. And, because Screenless Display doesn't require a physical screen, it offers a level of privacy that was previously unimaginable. So say goodbye to your old, outdated touchscreen displays - the future is here, and it's &lt;strong&gt;SCREENLESS 😎&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fht5ltkr3ictknrkqq8ru.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fht5ltkr3ictknrkqq8ru.gif" width="650" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Screenless Displays
&lt;/h2&gt;

&lt;p&gt;Are you ready to enter a world beyond screens? There are three main types of Screenless Displays, each with its unique features and benefits:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visual Image Display:&lt;/strong&gt; These displays use light to create images that appear to float in the air without needing a physical screen. Some examples include holograms (like the one we have seen in Star Wars 😊), heads-up displays used in jet fighters, virtual reality goggles, and smartphones and tablet computers with LCD panels.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Retinal Display:&lt;/strong&gt; These displays take things a step further by projecting images directly onto the human retina 👁. This means that the image is beamed directly into your eye, bypassing the need for any intermediate objects like screens or projectors. You may have seen the potential of retinal displays in movies like Terminator. This is very useful for some seriously private computing, especially when you're working in public places. Some examples of this technology include Google Glass and Eye Tap.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Synaptic Interface Display:&lt;/strong&gt; This is the most advanced type of Screenless Display. These systems project images directly into the human brain 🧠, bypassing the eyes entirely. This technology doesn't use light at all and has the potential to be used for a wide range of applications, from security systems to education and business. While this technology is still in its early stages, it has already had some success in sending video signals from electronic cameras into the brains of living horseshoe crabs.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why is Screenless Display Technology Important?
&lt;/h2&gt;

&lt;p&gt;Screenless Display is a revolutionary technology that offers many advantages over traditional display technologies.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;One of the main advantages of Screenless Displays is their &lt;strong&gt;&lt;em&gt;energy efficiency 🔋&lt;/em&gt;&lt;/strong&gt; because they do not require a physical screen or projector. This is particulary beneficial for devices that rely on batteries, as it can help extend the lifespan of the device.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Screenless displays also have the advantage of being much lighter and more compact compared to traditional displays. This is because they don't require a physical screen or projector, which can be quite bulky and heavy. The reduced weight and size of screenless displays make them more &lt;strong&gt;&lt;em&gt;portable and convenient&lt;/em&gt;&lt;/strong&gt; to use, as they can be easily carried around and can be used on the go.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Screenless displays, like heads-up displays (HUDs), offer &lt;strong&gt;&lt;em&gt;improved readability&lt;/em&gt;&lt;/strong&gt; in certain situations. HUDs project important information onto a transparent screen or directly onto the retina, allowing you to view the display while also maintaining focus on your surroundings. This can be especially useful for applications like navigation or aviation. For example, a HUD would allow you to view a map or other important information while driving without having to take your eyes off the road.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some screenless displays, like retinal displays, offer a &lt;strong&gt;&lt;em&gt;high level of privacy&lt;/em&gt;&lt;/strong&gt; 🔐when computing in public places. This is because the image is directed straight onto the retina, eliminating the need for intermediate objects such as screens or projectors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Because screenless displays don't have a physical screen, they are less prone to damage from impacts or scratches. This makes them &lt;strong&gt;&lt;em&gt;a more reliable&lt;/em&gt;&lt;/strong&gt; and long-lasting option for devices that may be subject to rough handling or harsh environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Imagine a group of people trying to watch a presentation on a regular screen. If they are not all standing directly in front of the screen, they may have difficulty seeing the content clearly due to the limited viewing angle of the screen. However, if the presentation were being displayed on a screenless display, such as a holographic display, the group of people would be able to view the content from a &lt;strong&gt;&lt;em&gt;wider range of angles&lt;/em&gt;&lt;/strong&gt; without any loss in image quality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One more significant advantage of screenless displays is it allows &lt;strong&gt;&lt;em&gt;people with visual impairments to interact&lt;/em&gt;&lt;/strong&gt; with and consume information more easily. Instead of struggling to see or read a physical screen, individuals with vision loss can use screenless displays to access information in a more intuitive and accessible way as screenless displays can project images directly onto the retina 👁🗨 or even transmit them directly into the brain 🧠.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Another benefit of screenless displays is the ability to achieve extremely &lt;strong&gt;&lt;em&gt;high resolutions&lt;/em&gt;&lt;/strong&gt;. These displays use lasers to project the image, which allows them to create very small and precise pixels. This results in a clear and crisp image. Additionally, the use of lasers allows these displays to reproduce &lt;strong&gt;&lt;em&gt;colors more accurately&lt;/em&gt;&lt;/strong&gt; and achieve &lt;strong&gt;&lt;em&gt;high levels of brightness and contrast&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Additionally, Screenless Displays also have many other benefits like being able to present &lt;strong&gt;&lt;em&gt;3D and far-point images&lt;/em&gt;&lt;/strong&gt; , offering a more detailed and immersive experience, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Challenges with Screenless Display Technology?
&lt;/h2&gt;

&lt;p&gt;Screenless display technology is still in the early stages of development, and there are several challenges that need to be overcome before it becomes widely available.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;&lt;em&gt;limited availability&lt;/em&gt;&lt;/strong&gt; of screenless displays can be a barrier to the broader adoption and use of these types of displays. For example, suppose a user is in a location with no screenless displays available. In that case, they may be unable to access the information conveyed through these displays.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It is essential to use these displays safely and responsibly to avoid any potential negative &lt;strong&gt;&lt;em&gt;impacts on eye health&lt;/em&gt;&lt;/strong&gt; or overall well-being. Some issues to consider when using screenless displays are prolonged use of audio at high volumes 🔊 and haptic feedback at high intensities, as these factors, can potentially cause strain on the eyes or other parts of the body. To prevent overuse or strain, it is important to use screenless displays responsibly and to take breaks as needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creating screenless displays can be &lt;strong&gt;&lt;em&gt;expensive and complex&lt;/em&gt;&lt;/strong&gt; due to the specialized equipment and computing power needed. For example, holographic displays involve intricate technology and often have a high price 💰 tag. Projection displays also need specialized equipment, although they are generally less costly than holographic displays. These financial and technical challenges can make it difficult for manufacturers to produce screenless displays at a reasonable cost.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Screenless Display Technology has the potential to change the way we interact with and consume information. With its immersive and interactive experiences, screenless displays offer a new level of engagement and can be used in a variety of applications, including gaming, entertainment, and education.&lt;/p&gt;

&lt;p&gt;While screenless displays are still in the early stages of development, ongoing research and development efforts are focused on improving their usability and accessibility and making them more widely available. As this technology continues to evolve, it has the potential to transform the way we experience and interact with the world around us.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F8h559r5fppi6javvv7tj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F8h559r5fppi6javvv7tj.gif" width="500" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm glad you took the time to read this article on screenless displays. I hope you found it interesting and informative 💡. If you have any thoughts or comments on this topic, please feel free to leave a message below. Drop a like 👍 and be sure to share it 🔂 with your friends, if you enjoyed this article.&lt;/p&gt;

&lt;p&gt;I am planning on covering new technology trends on this blog in the future. Don't miss out on the latest and greatest in tech. Follow my &lt;a href="https://sree-gaya3.hashnode.dev/" rel="noopener noreferrer"&gt;blog&lt;/a&gt; and stay ahead of the curve. Trust me, you'll be the one dropping knowledge bombs left and right.&lt;/p&gt;

&lt;p&gt;See you in the next one 👀. Wherever you are in the world, I wish you all the best 👍 Cheers !!!&lt;/p&gt;

</description>
      <category>developers</category>
      <category>agile</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Sorting Algorithms Introduction</title>
      <dc:creator>Sree Gayathri Sidamsetti</dc:creator>
      <pubDate>Fri, 21 Jan 2022 15:28:34 +0000</pubDate>
      <link>https://dev.to/sree_gaya3/sorting-algorithms-introduction-3b55</link>
      <guid>https://dev.to/sree_gaya3/sorting-algorithms-introduction-3b55</guid>
      <description>&lt;p&gt;Hello Guys👋 I Hope you are doing great !! This is a short article, and in this, you will get a brief introduction to sorting algorithms.&lt;/p&gt;

&lt;p&gt;Without Further Ado, Let's get started 👍!!&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Sorting is nothing but an arrangement of elements in an ordered sequence like highest to lowest or lowest to highest or some alphabetical order.&lt;/p&gt;

&lt;p&gt;These are some common sorting algorithms that we will discuss in this series.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Bubble Sort&lt;/li&gt;
&lt;li&gt;Selection Sort&lt;/li&gt;
&lt;li&gt;Insertion Sort&lt;/li&gt;
&lt;li&gt;Merge Sort&lt;/li&gt;
&lt;li&gt;Counting Sort&lt;/li&gt;
&lt;li&gt;Quick Sort&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Before going into each algorithm, let's first know some factors on which sorting algorithms are classified.&lt;/p&gt;

&lt;h4&gt;
  
  
  Classification of Sorting Algorithms
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;In-place sorting:&lt;/strong&gt; These algorithms do not require any extra space for comparison and temporary storage of a few data elements. It only needs the input space, excluding the constant space used for variables or iterators and the space used for stack in the recursive algorithms.&lt;br&gt;&lt;br&gt;
&lt;em&gt;Examples:&lt;/em&gt; Bubble Sort, Selection Sort, Insertion Sort, Quicksort, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Out-place sorting:&lt;/strong&gt; These algorithms require extra space for sorting&lt;br&gt;&lt;br&gt;
&lt;em&gt;Examples:&lt;/em&gt; Merge Sort, Counting Sort, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stable sorting:&lt;/strong&gt; In these algorithms, two objects with equal keys appear in the same order before and after sorting&lt;br&gt;&lt;br&gt;
&lt;em&gt;Examples:&lt;/em&gt; Bubble Sort, Insertion Sort, Merge Sort, Counting Sort, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Un-stable sorting:&lt;/strong&gt; In these algorithms, two or more objects with equal keys don't appear in the same order before and after sorting&lt;br&gt;&lt;br&gt;
&lt;em&gt;Examples:&lt;/em&gt; Selection Sort, Quick Sort, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adaptive sorting:&lt;/strong&gt; In these algorithms, the order of occurrence of elements in the input affects the time complexity of a sorting algorithm&lt;br&gt;&lt;br&gt;
&lt;em&gt;Examples:&lt;/em&gt; Bubble Sort, Insertion Sort, Quick Sort, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Non-adaptive sorting:&lt;/strong&gt; In these algorithms, the order of occurrence of elements does not affect the time complexity of a sorting algorithm&lt;br&gt;&lt;br&gt;
&lt;em&gt;Examples:&lt;/em&gt; Selection Sort, Merge Sort, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comparision sorting:&lt;/strong&gt; These algorithms compare elements at each step of the algorithm to determine if one element should be to the left or right of another element.&lt;br&gt;&lt;br&gt;
&lt;em&gt;Examples:&lt;/em&gt; Bubble Sort, Selection Sort, Insertion sort, Merge Sort, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integer sorting:&lt;/strong&gt; These type of algorithms do not make comparisons. Integer sorts determine for each element x, how many elements are less than x. This type of algorithm is used to immediately place each element into the correct slot no need to rearrange lists.&lt;br&gt;&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Counting Sort&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is the Complexity's of Different Sorting Algorithms&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ffia1oiu0ov0m9pk6keo0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ffia1oiu0ov0m9pk6keo0.jpeg" alt="screenshot of BigOCheetSheet" width="800" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🖐Conclusion
&lt;/h2&gt;

&lt;p&gt;Finally, In this article, we learned about some classifications of sorting algorithms. Now we are ready for learning algorithms 👍👩🎓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Thank you for reading so far🙏. I hope you enjoyed following it and are ready to learn sorting algorithms.&lt;/p&gt;

&lt;p&gt;In the coming parts, we will discuss &lt;strong&gt;about each Sorting Algorithm&lt;/strong&gt; in detail !! So Stay Tuned👀👀!!!!&lt;/p&gt;

&lt;p&gt;Do share your valuable suggestions and your honest feedback. If you have any comments, questions, or concerns, Do comment them, and I am more than happy to take them💬.&lt;/p&gt;

&lt;p&gt;Happy Learning 😊👍!!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>cloud</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Searching Algorithms in Detail</title>
      <dc:creator>Sree Gayathri Sidamsetti</dc:creator>
      <pubDate>Thu, 20 Jan 2022 08:36:06 +0000</pubDate>
      <link>https://dev.to/sree_gaya3/searching-algorithms-in-detail-181n</link>
      <guid>https://dev.to/sree_gaya3/searching-algorithms-in-detail-181n</guid>
      <description>&lt;p&gt;Hello Guys👋 Hope you are doing great !! Welcome to the first article of the &lt;a href="https://sree-gaya3.hashnode.dev/series/dsa"&gt;Data Structures and Algorithms&lt;/a&gt; series, in which we'll go over all of the major concepts so you can master DSA.&lt;/p&gt;

&lt;p&gt;In this article, We will discuss about Searching Algorithms.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We will discuss the Main Idea, Algorithm, Implementation, Complexity Analysis, Advantages and DisAdvantages of each one. 🧠&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Without Further Ado, Let's get started 👍!!&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Searching&lt;/strong&gt; is the process of finding a specific element in a collection of elements. If the element is found in the collection, the process is considered successful, and it returns the location of that element. Otherwise, it deems the search unsuccessful.&lt;/p&gt;

&lt;p&gt;Based on the type of search operation, searching algorithms are classified into two categories.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sequential Search&lt;/strong&gt; : In this type, the collection is traversed sequentially, and every element is checked. For Example, Linear Search.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interval Search&lt;/strong&gt; : These algorithms are used to search in sorted collections. These are much more efficient than Linear Search because they repeatedly target the center of the search structure and divide the search space in half. For Example, Binary Search.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1 Linear Search
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Main Idea:&lt;/strong&gt; Traversing the list of items from start to end and exploring all the element's properties on the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; You have to find and print indices of all the elements whose value is &lt;strong&gt;x&lt;/strong&gt; in the array of size n.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for each element in the array {
    if(current element == x)
        print(index)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Complexity Analysiss
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Worst-Case&lt;/strong&gt; : This occurs when the element we are finding is present at the end of the array or not present in the given array. In this case, we have to traverse the entire array. The worst-case time complexity of the linear search is &lt;strong&gt;O(n)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Average Case&lt;/strong&gt; : The average case time complexity is &lt;strong&gt;(n)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Case&lt;/strong&gt; : This occurs when the element we are finding is at the first position of the array. The best-case time complexity of the linear search is &lt;strong&gt;(1)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Space Complexity&lt;/strong&gt; : As it does not need any extra space, Space Complexity is &lt;strong&gt;O(1)&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2 Binary Search
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Main Idea:&lt;/strong&gt; Dividing the array into two halves and throwing away one instance of it based on a particular condition. Binary Search only works on &lt;strong&gt;sorted collections&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Binary Search follows the &lt;strong&gt;divide and conquer&lt;/strong&gt; approach in which the list is divided into two halves, and the item is compared with the middle element of the list. If the match is found, then the middle element's location is returned. Otherwise, we search into either of the halves depending upon the result produced through the match.&lt;/p&gt;

&lt;h4&gt;
  
  
  Algorithm
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Compare x with the middle element&lt;/li&gt;
&lt;li&gt;If middle element == x: return middle index&lt;/li&gt;
&lt;li&gt;Else if x &amp;gt; middle element: x can only lie in the right half of the subarray after the middle element, so we search in the right subarray.&lt;/li&gt;
&lt;li&gt;Else (x &amp;lt; middle element): x can only lie in the left half of the subarray before the middle element, so we search in the left subarray.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Implementation (PseudoCode)
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Iterative&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function binarySearch(arr, n, target) 
    left = 0
    right = n-1
    while(left &amp;lt;= right)
        mid = low + (high - low)/2
        if(target == arr[mid])
            return mid
        else if(target &amp;lt; arr[mid])
            high = mid - 1
        else 
            low = mid + 1
    return -1

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;Recursive&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function binarySearch(arr, n, target, left, right) 
    if(left &amp;gt; right)
        return -1
    mid = low + (high - low)/2
    if(target &amp;lt; arr[mid])
        return binarySearch(arr, n, target, left, mid-1)
    else 
        return binarySearch(arr, n, target, mid+1, right)
return -1

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Complexity Analysis
&lt;/h3&gt;

&lt;p&gt;The time complexity of Binary Search can be written as:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;T(n) = T(n/2) + c&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The above recurrence can be solved either using the Recurrence Tree method or the Master method. It falls in case II of the Master Method, and the solution of the recurrence is Theta(Logn).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Worst-Case&lt;/strong&gt; : This occurs when we have to keep reducing the search space till it has only one element. The worst-case time complexity of Binary search is &lt;strong&gt;O(logn)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Average Case&lt;/strong&gt; : The average case time complexity is &lt;strong&gt;(logn)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Case&lt;/strong&gt; : This occurs when the element to search is found in the first comparison, i.e., when the first, middle element itself is the element to be searched. The best-case time complexity of Binary search is &lt;strong&gt;(1)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Space Complexity&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Iterative Implementation - O(1)&lt;/li&gt;
&lt;li&gt;Recursive implementation - O(logn) - recursion call stack space&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Advantages
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;It is fast and easy to Implement&lt;/li&gt;
&lt;li&gt;It doesn't require any extra space&lt;/li&gt;
&lt;li&gt;This reduces the time complexity to a greater extent&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Dis Advantages
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;It can only be applied to monotonic problems (sorted collections)&lt;/li&gt;
&lt;li&gt;It can only be used in data structures that allow direct access to the elements (ex: We cannot use Binary Search on Linked Lists)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🖐Conclusion
&lt;/h2&gt;

&lt;p&gt;Finally, In this article we learned about Linear Search and Binary Search Algorithms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Thank you for reading so far🙏. I hope you enjoyed following it and got a clear idea on Linear Search and Binary Search. Now open you favourite code editor and start implementing these algorithms in the language you are comfortable with💻.&lt;/p&gt;

&lt;p&gt;And also, practise some problems on Binary Search from &lt;a href="https://www.interviewbit.com/courses/programming/topics/binary-search/#problems"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the coming parts, we will discuss the &lt;strong&gt;Sorting Algorithms&lt;/strong&gt; in detail !! So Stay Tuned👀👀!!!!&lt;/p&gt;

&lt;p&gt;Do share your valuable suggestions and your honest feedback. If you have any comments, questions, or concerns, Do comment them and I am more than happy to take them💬.&lt;/p&gt;

&lt;p&gt;Happy Learning 😊👍!!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Indexing and Slicing Numpy Arrays</title>
      <dc:creator>Sree Gayathri Sidamsetti</dc:creator>
      <pubDate>Fri, 21 May 2021 15:40:22 +0000</pubDate>
      <link>https://dev.to/sree_gaya3/indexing-and-slicing-numpy-arrays-4p9d</link>
      <guid>https://dev.to/sree_gaya3/indexing-and-slicing-numpy-arrays-4p9d</guid>
      <description>&lt;p&gt;Hello Guys👋&lt;/p&gt;

&lt;p&gt;In the previous article, we have learned different methods of creating Numpy Arrays. In this article, we will see how to perform indexing and slicing on Numpy Arrays.&lt;/p&gt;

&lt;p&gt;Let's get started with this article👍.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Indexing and Slicing in 1D Arrays

&lt;ul&gt;
&lt;li&gt;Indexing&lt;/li&gt;
&lt;li&gt;Slicing&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
Indexing and Slicing in 2D Arrays

&lt;ul&gt;
&lt;li&gt;Indexing&lt;/li&gt;
&lt;li&gt;Slicing&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Indexing &amp;amp; Slicing in 1D Arrays
&lt;/h2&gt;

&lt;p&gt;Both indexing and slicing are similar to Python Lists.&lt;/p&gt;

&lt;h3&gt;
  
  
  Indexing :
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-based Indexing&lt;/strong&gt; - index of 1st element is 0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supports Negative Indexing&lt;/strong&gt; - Index of last element is -1 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To get more clarity, Let's see this in an example now.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;numbers_array = np.array([1, 4, 7, 0, 55, 79, 3])
first_number = numbers_array[0]
third_number = numbers_array[2]
last_number = numbers_array[-1]
third_from_last_number = numbers_array[-3]

print("Array : ", numbers_array)
print("first_number : ", first_number)
print("third_number : ", third_number )
print("last_number : ", last_number )
print("third_from_last_number : ", third_from_last_number )

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By now you may have guessed what it prints👏. Let's see.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Array : [1 4 7 0 55 79 3]
first_number : 1
third_number : 7
last_number : 3
third_from_last_number : 55

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Slicing :
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Slice with the &lt;code&gt;[start:stop]&lt;/code&gt; syntax outputs elements in the interval &lt;strong&gt;[start, stop)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Slice with the &lt;code&gt;[start:stop:step]&lt;/code&gt; syntax outputs elements in the interval &lt;strong&gt;[start, stop)&lt;/strong&gt; with a step size of &lt;strong&gt;step&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's see various types of slicing&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;numbers_array = np.array([1, 4, 7, 0, 55, 79, 3, 45, 28])

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;General Method&lt;/strong&gt; :&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Using Negative indices&lt;/strong&gt; :&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Omitting Start and Stop Indices&lt;/strong&gt; :&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Modifying Slices :
&lt;/h3&gt;

&lt;p&gt;In NumPy, slices can be assigned&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a constant or&lt;/li&gt;
&lt;li&gt;an array of the right shape.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Assigning constant to a Slice&lt;/strong&gt; : 

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;numbers_array[1:4] = 5&lt;/code&gt; This changes all the values from index 1 to 3 to 5.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assigning an array of right shape to a Slice&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;numbers_array[2:6] = np.array([1, 2, 3, 4])&lt;/code&gt; This replaces the slice with the new array assigned.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Important Note&lt;/strong&gt; : In NumPy slicing returns a view of the original array, instead of creating a new array. (Assignments also return the view only)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This makes slicing numpy arrays very fast.&lt;/li&gt;
&lt;li&gt;This also means modifying a slice, modifies the underlying array as well.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;To create a new array&lt;/strong&gt; from the given Numpy array, we have to use &lt;code&gt;numbers_array.copy()&lt;/code&gt; method. This creates a duplicate array and the changes made to this will not modify the original array.&lt;/p&gt;

&lt;h2&gt;
  
  
  Indexing &amp;amp; Slicing in 2D Arrays
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Indexing :
&lt;/h3&gt;

&lt;p&gt;Again same as 1D arrays,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-based Indexing&lt;/strong&gt; - indexing starts with 0
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;array_2d = np.array(['a', 'b', 'c', 'd'],
                    ['e', 'f', 'g', 'h'],
                    ['i', 'j', 'k', 'l']])

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's how we can access rows, columns, and elements.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;array_2d[i]&lt;/code&gt; gives the &lt;code&gt;i+1 th row&lt;/code&gt;, like array_2d[0] gives the first row.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;array_2d[:,i]&lt;/code&gt; gives the &lt;code&gt;i+1 th column&lt;/code&gt;, like array_2d[:, 0] gives the first column.&lt;/li&gt;
&lt;li&gt;'array_2d[a:b]&lt;code&gt;gives the element in&lt;/code&gt;a+1 th row&lt;code&gt;and&lt;/code&gt;b+1 th column`, like array_2d[0][0] gives the element in first row and first column. (1st element in 1st row)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Slicing :
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`&lt;br&gt;
array_2d = np.array(['a', 'b', 'c', 'd'],&lt;br&gt;
                    ['e', 'f', 'g', 'h'],&lt;br&gt;
                    ['i', 'j', 'k', 'l']])&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We will see possible ways of slicing 2d arrays.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;array_2d[1:3]&lt;/code&gt; gives the complete rows having index from 1 till 3 (excluding 3) same as in 1d arrays.&lt;/li&gt;
&lt;li&gt;`array_2d[1:3, 2:4] gives the elements in rows having index 1 to 3 and columns having index 2 to 4.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;array_2d[:, 0:4:2]&lt;/code&gt; gives elements in all rows, columns having indices from 0 to 4 with a step of 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also can modify the elements in 2d arrays same as in 1d arrays.&lt;/p&gt;

&lt;h3&gt;
  
  
  🖐Conclusion
&lt;/h3&gt;

&lt;p&gt;Finally, In this article we learned how to perform indexing ad slicing on Numpy Arrays (both 1D and 2D arrays)&lt;/p&gt;

&lt;p&gt;What's Next ?&lt;/p&gt;

&lt;p&gt;Thank you for reading so far🙏. I hope you enjoyed following it and understood how to do indexing and slicing on Numpy Arrays. I highly recommend you to try these methods.&lt;/p&gt;

&lt;p&gt;In the next part, we will discuss the &lt;strong&gt;Advanced Indexing and Slicing&lt;/strong&gt; methods of Numpy Arrays in detail and then &lt;strong&gt;Operations on Arrays&lt;/strong&gt;!! So Stay Tuned👀👀!!!!&lt;/p&gt;

&lt;p&gt;Do share your valuable suggestions and your honest feedback, also Constructive Criticism. If you have any comments, questions, or concerns, Do comment them and I am more than happy to take them💬.&lt;/p&gt;

&lt;p&gt;Happy Learning 😊👍!!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>All different ways of Creating Numpy Arrays!</title>
      <dc:creator>Sree Gayathri Sidamsetti</dc:creator>
      <pubDate>Thu, 20 May 2021 12:35:57 +0000</pubDate>
      <link>https://dev.to/sree_gaya3/all-different-ways-of-creating-numpy-arrays-4bk9</link>
      <guid>https://dev.to/sree_gaya3/all-different-ways-of-creating-numpy-arrays-4bk9</guid>
      <description>&lt;h2&gt;
  
  
  import numpy as np
&lt;/h2&gt;

&lt;p&gt;Hello Guys👋&lt;/p&gt;

&lt;p&gt;In this article, we will see all the different ways of creating Numpy Arrays.&lt;/p&gt;

&lt;p&gt;So, Without much ado, Let's get started with the article👍.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Numpy Arrays vs Python Lists &lt;/li&gt;
&lt;li&gt;Creating Numpy Arrays from Lists&lt;/li&gt;
&lt;li&gt;Creating Numpy Constant Arrays&lt;/li&gt;
&lt;li&gt;Creating Numpy Sequence Arrays&lt;/li&gt;
&lt;li&gt;Creating ndarrays and understanding their properties&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Numpy Arrays vs Python Lists 🤨:
&lt;/h2&gt;

&lt;p&gt;The main difference difference is the time taken by them to perform operations. To measure this, we use %timeit function. N loops indicate that the function has been called N times to compute the average time to execute the function. Best of K indicates that the %timeit has been run K times to take the best average. These constants can also be modified and given as argument to the %timeit function.&lt;/p&gt;

&lt;p&gt;Let's use %timeit and see the difference:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vec_size = 1000
def add_python_lists():
    X = range(vec_size)
    Y = range(vec_size)
    Z = [X[i] + Y[i] for i in range(len(X))]
    return Z

%timeit add_python_lists()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output of the above %timeit function is : 1000 loops, best of 5: 260 s per loop&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vec_size = 1000
def add_numpy_arrays():
    X = np.arange(vec_size)
    Y = np.arange(vec_size)
    Z = X + Y
    return Z
%timeit add_numpy_arrays()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output of the above %timeit function is : The slowest run took 1698.30 times longer than the fastest. This could mean that an intermediate result is being cached. 100000 loops, best of 5: 3.85 s per loop&lt;/p&gt;

&lt;p&gt;So, we can clearly see that to add two lists of same size, Python takes 260s per loop whereas Numpy takes only 3.85s per loop🙂.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Numpy Arrays from Lists🙃
&lt;/h2&gt;

&lt;p&gt;Numpy arrays can be created using a list with &lt;code&gt;numpy.array&lt;/code&gt;All elements of a numpy array should be of the same type&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;numpy.array&lt;/code&gt; chooses a data type which fits all of the elements in the array&lt;/li&gt;
&lt;li&gt;We can also specify the data type with the &lt;code&gt;dtype&lt;/code&gt; parameter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's create a numpy array.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int_array = np.array([1, 5, 7, 9, -2], dtype=np.int16)
print("int_array:", int_array)

typecasted_int_array = np.array([1, 5, 7, 9, -2.54], dtype=np.int64)
print("typecasted_int_array:", typecasted_int_array)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code prints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int_array: [1 5 7 9 -2] 
typecasted_int_array: [1 5 7 9 -2]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, int_array is a numpy array of type int16. The typecasted_int_array is the numpy array of type int64. Here what we need to observe is, when we specified the dtype as int, 2.54 is typecasted as 2.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Numpy Constant Arrays
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;np.zeros&lt;/strong&gt; (shape, dtype=float) - Returns a new array of given shape and type, filled with zeros.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;zeros_5 = np.zeros(5)  
print("zeros_5:", zeros_5)

zeros_7 = np.zeros(7, dtype=int)
print("zeros_7:", zeros_7)

zeros_2_3 = np.zeros((2,3), dtype=int)
print("zeros_2_3:", zeros_2_3)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code prints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;zeros_5: [0. 0. 0. 0. 0.]
zeros_7: [0 0 0 0 0 0 0]
zeros_2_3: [[0 0 0]
            [0 0 0]]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;np.ones&lt;/strong&gt; (shape, dtype=float) - Returns a new array of given shape and type, filled with ones.&lt;/p&gt;

&lt;p&gt;This functions similar to np.zeros. As the name suggests, the only difference is it returns an array filled with ones instead of zeroes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;np.full&lt;/strong&gt; (shape, fill_value, dtype=None) - Returns a new array of given shape and type, filled with fill_value. The default data type is derived from the fill_value&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fill_int_array = np.full(10, fill_value=7.5, dtype=int)
print("fill_int_array:",fill_int_array)

fill_bool_array = np.full(6, fill_value=False)
print("fill_bool_array:",fill_bool_array)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code prints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fill_int_array: [7 7 7 7 7 7 7 7 7 7]
fill_bool_array: [False False False False False False]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, here fill_int_array is an array of size 10, type int and filled with 7.5. There is no need to specify the dtype as it automatically derive that from the fill_value as shown in example 2. There we haven't specified any dtype, but the type of fill_bool_array is boolean.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Numpy Sequence Arrays
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;np.arange&lt;/strong&gt; (start, stop, step, dtype=None) :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Equivalent to the Python built-in range, but returns an ndarray rather than a list&lt;/li&gt;
&lt;li&gt;Values are generated within the half-open interval [start, stop) &lt;/li&gt;
&lt;li&gt;Much more efficient than np.array(range(_))
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;first_10_numbers = np.arange(10)
print("first_10_numbers:",first_10_numbers)

numbers_with_step = np.arange(5, 13, 2, dtype=float)
print("numbers_with_step:",numbers_with_step)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the above code prints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;first_10_numbers: [0 1 2 3 4 5 6 7 8 9]
numbers_with_step: [5. 7. 9. 11.]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here numbers_with_step is an array containing numbers starting from 5 till 13 (excluding) with a step of 2, and of type float. We need not specify the start, step value, by default they are 0 as shown in first_10_numbers. It is an array of consecutive numbers from 0 to 10.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;np.linspace&lt;/strong&gt; (start, stop, num, endpoint, retstep, dtype) :&lt;/p&gt;

&lt;p&gt;Returns evenly spaced numbers, calculated over the interval [start, stop]. The number of evenly spaced numbers returned is equal to num&lt;/p&gt;

&lt;p&gt;We Can control whether the last number stop can be included or excluded with the endpoint parameter&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a = 4.0
b = 5.0
n = 6
sequential_array = np.linspace(a, b, num=n)
print("sequential_array:",sequential_array)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code prints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sequential_array: [4. 4.2 4.4 4.6 4.8 5.]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This returns an array of 6 numbers between 4 and 5 that are evenly spaced.&lt;/p&gt;

&lt;h2&gt;
  
  
  🖐Some more Methods of Creating Numpy Arrays
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;np.empty&lt;/strong&gt; (shape, dtype) - Creates an uninitialized empty array of the given shape. It might contain garbage values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;empty_array = np.empty(4, dtype=int)
print("empty_array:",empty_array)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code gives&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;empty_array: [4632796641680687104 4630263366890291200 4645547458125679821 4643121143826433966]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This may not give the same values always because they are garbage and will differ everytime we run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;np.random.random&lt;/strong&gt; (shape) - Creates an array of the given shape with random values in the interval [0,1]&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;random_valued_array = np.random.random(4)
print("random_valued_array:",random_valued_array)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code prints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;random_valued_array: [0.71697819 0.70451885 0.18953959 0.587543]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The values are not always same as the name suggests they are randomly generated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;np.eye&lt;/strong&gt; (num) - Returns the identity matrix of size num*num. Default data type is float.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;identity_matrix = np.eye(7)
print(identity_matrix)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This prints an identity matrix of size 7*7.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[[1. 0. 0. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0. 0. 0.]
 [0. 0. 1. 0. 0. 0. 0.]
 [0. 0. 0. 1. 0. 0. 0.]
 [0. 0. 0. 0. 1. 0. 0.]
 [0. 0. 0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 0. 0. 1.]]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;np.diag&lt;/strong&gt; (list of elements) - Returns a diagonal matrix with the list of elements as diagonal elements. The size is automatically derived from the list.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;diagonal_matrix = np.diag((1, 2, 3, 5, 8, 10))
print(diagonal_matrix)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code prints a diagonal matrix of size 6*6 with these elements as diagonal elements.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[[1 0 0 0 0 0]
 [0 2 0 0 0 0]
 [0 0 3 0 0 0]
 [0 0 0 5 0 0]
 [0 0 0 0 8 0]
 [0 0 0 0 0 10]]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🖐Creating ndarrays &amp;amp; know its Properties
&lt;/h2&gt;

&lt;p&gt;Lets create a 3darray and understand its properties.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;array_2d = np.array([[1, -2, 0], 
                     [3, 4, 2],
                    [3, 8, 9]])
print(array_2d)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code prints a 3*3 matrix as below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[[1 -2 0]
 [3 4 2]
 [3 8 9]]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Properties of ndarray 😮😮
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;size&lt;/strong&gt; : Returns the total number of elements in the array&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ndim&lt;/strong&gt; : Returns the no.of dimensions of the array&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;shape&lt;/strong&gt; : Returns the shape of array&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lets see an example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;array_2d = [[1 -2 0]
            [3 4 2]
            [3 8 9]]
print("size: ", array_2d.size)
print("ndim: ", array_2d.ndim)
print("shape: ", array_2d.shape)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code prints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;size: 9
ndim: 2
shape: (3, 3)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🖐Conclusion
&lt;/h2&gt;

&lt;p&gt;Finally, The methods we discussed in this article are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;np.array&lt;/li&gt;
&lt;li&gt;np.zeros, np.ones, np.full&lt;/li&gt;
&lt;li&gt;np.arrange, np.linespace&lt;/li&gt;
&lt;li&gt;np.empty, np.eye, np.diag&lt;/li&gt;
&lt;li&gt;np.random.random&lt;/li&gt;
&lt;li&gt;nd Arrays&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What's Next ?&lt;/p&gt;

&lt;p&gt;Thank you for reading so far🙏. I hope you enjoyed following it and understood different ways of creating Numpy Arrays. I highly recommend you to play around with these methods.&lt;/p&gt;

&lt;p&gt;In the next part, we will discuss the &lt;strong&gt;Indexing and Slicing&lt;/strong&gt; of Numpy Arrays in detail !! So Stay Tuned👀👀!!!!&lt;/p&gt;

&lt;p&gt;Do share your valuable suggestions and your honest feedback, also Constructive Criticism. If you have any comments, questions, or concerns, Do comment them and I am more than happy to take them💬.&lt;/p&gt;

&lt;p&gt;Happy Learning 😊👍!!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is SafeArea in Flutter ?</title>
      <dc:creator>Sree Gayathri Sidamsetti</dc:creator>
      <pubDate>Wed, 19 May 2021 12:32:02 +0000</pubDate>
      <link>https://dev.to/sree_gaya3/what-is-safearea-in-flutter--igb</link>
      <guid>https://dev.to/sree_gaya3/what-is-safearea-in-flutter--igb</guid>
      <description>&lt;p&gt;Hello Guys👋&lt;/p&gt;

&lt;p&gt;As discussed earlier, lets start knowing about widgets🔨. I have searched many resources to learn Flutter and couldn't find any that are more efficient than the &lt;a href="https://flutter.dev/docs/development/ui/widgets-intro"&gt;&lt;strong&gt;Flutter Docs&lt;/strong&gt;&lt;/a&gt;📑 till date (as much as I know). According to me, the documentation of flutter is very well written and whenever you have some doubt, go check it👍.&lt;/p&gt;

&lt;p&gt;In this article, we will discuss about &lt;strong&gt;SafeArea&lt;/strong&gt;. Let's get started with the article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is SafeArea &amp;amp; What is Does ?&lt;/li&gt;
&lt;li&gt;How to Use SafeArea in our App ?&lt;/li&gt;
&lt;li&gt;Properties of SafeArea :&lt;/li&gt;
&lt;li&gt;Working Demo&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is SafeArea and What it Does
&lt;/h2&gt;

&lt;p&gt;SafeArea is one of the important widget in Flutter. It makes the UI dynamic and adaptive to various types of devices. We can also see it like a widget which provides padding automatically 🔲 according to the pre-occupied constraints of the screen📱.&lt;/p&gt;

&lt;p&gt;Let's understand this in more detail. Think of designing an app UI so that it fits in every type of screen design (i.e, irrespective of its camera hole, status bar, notches, navigation bar,...)🤔🤔.&lt;/p&gt;

&lt;p&gt;We cannot Right? Here comes the role of SafeArea🖐. If our app features is overlaying any of the system features, then SafeArea would add padding around the app, as required. Basically, it uses Media Query to check the dimensions of the display screen and add the required padding if needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use SafeArea 🤔?
&lt;/h2&gt;

&lt;p&gt;This is the constructor for SafeArea Widget 👇. This creates a widget that avoids operating system interfaces.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const SafeArea ({
    Key key,
    bool left: true,
    bool top: true,
    bool right: true,
    bool bottom: true,
    EdgeInsets minimum: EdgeInsets.zero,
    bool maintainBottomViewPadding: false,
    @required Widget child
})

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can change the values according to our requirements. Suppose if we want padding only on top and bottom, we can change the values of left, right to false. And if we want some minimum padding to be added on one/more sides, we can change the value of minimum to the desired padding. For Example, see the below code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SafeArea(
    minimum: const EdgeInsets.all(12.0),
    child: Text('My first Widget'),
)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code will add minimum padding in all directions. If we haven't specified the minimum value, then the required padding according to the screen dimensions will be added.&lt;/p&gt;

&lt;h2&gt;
  
  
  Properties 🗂:
&lt;/h2&gt;

&lt;p&gt;There are some properties of SafeArea which we can use accordingly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;left&lt;/strong&gt; -&amp;gt; bool : by Default it is true. If it is set to false, then SafeArea will not add any padding to the left of the screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;top&lt;/strong&gt; -&amp;gt; bool : by Default it is true. If it is set to false, then SafeArea will not add any padding to the top of the screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;right&lt;/strong&gt; -&amp;gt; bool : by Default it is true. If it is set to false, then SafeArea will not add any padding to the right of the screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;bottom&lt;/strong&gt; -&amp;gt; bool : by Default it is true. If it is set to false, then SafeArea will not add any padding to the bottom of the screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;minimum&lt;/strong&gt; -&amp;gt; EdgeInsets : If we specify some value, minimum that much of padding will be added to one/more sides of the screen. It is like the minimum value it should add..&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;maintainBottomViewPadding&lt;/strong&gt; -&amp;gt; bool : byDefault it is false. It specifies whether SafeArea should maintain the viewPadding instead of padding. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For Instance, if there is an onscreen keyboard displayed above the SafeArea, the padding can be maintained below the obstruction rather than being consumed🙂.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working Demo 💻🤩
&lt;/h2&gt;

&lt;p&gt;Now, Let's apply the theory we have learnt so far🙃.&lt;/p&gt;

&lt;p&gt;See this Code,&lt;br&gt;
&lt;/p&gt;

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

void main() =&amp;gt; runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Text(
          'In this Article, We learned about SafeArea, Now lets see the Demo',
          style: TextStyle(
            color: Colors.amber,
            fontSize: 20,
          ),
        ),
      ),
    );
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And our app looks like &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wFbZpw9U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1621395358337/eIuzL99xr.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wFbZpw9U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1621395358337/eIuzL99xr.jpeg" alt="App without using SafeArea" width="401" height="842"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above screenshot, The text is overlaying the status bar of the device, which we don't want to🚫. Now, lets use SafeArea to make it look good🎇.&lt;br&gt;
&lt;/p&gt;

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

void main() =&amp;gt; runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SafeArea(
        top: true,
        child: Scaffold(
          body: Text(
            'In this Article, We learned about SafeArea, Now lets see the Demo',
            style: TextStyle(
              color: Colors.amber,
              fontSize: 20,
            ),
          ),
        ),
      ),
    );
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And our app looks like &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zCfgKjM6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1621396177470/iyEASjUI3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zCfgKjM6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1621396177470/iyEASjUI3.jpeg" alt="App after using SafeArea" width="400" height="842"&gt;&lt;/a&gt;The required padding is &lt;strong&gt;automatically&lt;/strong&gt; added to the top of our app to prevent the overlaying with the system features.&lt;/p&gt;

&lt;p&gt;And See the below code, (using minimum property) 🤟&lt;br&gt;
&lt;/p&gt;

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

void main() =&amp;gt; runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SafeArea(
        minimum: EdgeInsets.all(14),
        child: Scaffold(
          body: Text(
            'In this Article, We learned about SafeArea, Now lets see the Demo',
            style: TextStyle(
              color: Colors.amber,
              fontSize: 20,
            ),
          ),
        ),
      ),
    );
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And our app looks like &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vqxnlhLC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1621399076111/g_p8QvVf-.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vqxnlhLC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1621399076111/g_p8QvVf-.jpeg" alt="App after using SafeArea minimum property" width="400" height="845"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can see that some amount of padding is automatically added on all directions because we have used the minimum property here.&lt;/p&gt;

&lt;p&gt;Not only the status bar, SafeArea will adjust our UI for notches, camera hole, notification bar... or any pre-defined feature of the system it is running 📱. Try giving different values to the properties and Have Fun seeing the result😁🥳.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next ?
&lt;/h2&gt;

&lt;p&gt;Thank you for reading so far🙏. I hope you enjoyed following it and got a clear idea about &lt;strong&gt;SafeArea&lt;/strong&gt;. I highly recommend you to play with this widget and try to use it in your app.&lt;/p&gt;

&lt;p&gt;In the next part, we will discuss the &lt;strong&gt;Expanded Widget&lt;/strong&gt; in detail !! So Stay Tuned👀👀!!!!&lt;/p&gt;

&lt;p&gt;Do share your valuable suggestions and your honest feedback, also Constructive Criticism. If you have any comments, questions, or concerns, Do comment them and I am more than happy to take them💬.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Imp Note*&lt;/strong&gt; : If you are a beginner and wanted to learn flutter, you can follow this series because this is the exact path I am following and learning Flutter🙋. It helps you learn flutter more easily and don't waste your time searching for best resource (as I have already searched many and documenting my learnings🥰😊).&lt;/p&gt;

&lt;p&gt;Happy Learning 😊👍!!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What exactly are Hot Reload and Hot Restart | Part 2</title>
      <dc:creator>Sree Gayathri Sidamsetti</dc:creator>
      <pubDate>Wed, 12 May 2021 08:24:23 +0000</pubDate>
      <link>https://dev.to/sree_gaya3/what-exactly-are-hot-reload-and-hot-restart-part-2-25jh</link>
      <guid>https://dev.to/sree_gaya3/what-exactly-are-hot-reload-and-hot-restart-part-2-25jh</guid>
      <description>&lt;p&gt;Hello Guys👋&lt;/p&gt;

&lt;p&gt;I hope you find &lt;a href="https://sree-gaya3.hashnode.dev/getting-started-with-flutter-set-up-your-environment"&gt;Setting Up Your Environment for Flutter Development&lt;/a&gt; helpful 😊. If you have followed that post till the end, you will end up having a simple counter app running in your emulator.&lt;/p&gt;

&lt;p&gt;Let's get started with the article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Starting Your Emulator without starting Android Studio&lt;/li&gt;
&lt;li&gt;
Hot Reload vs Hot Restart &lt;/li&gt;
&lt;li&gt;An analogy to understand Hot Reload, Hot Restart, their difference&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Firstly,
&lt;/h2&gt;

&lt;p&gt;Are you using VS Code as the editor and running your apps on virtual device? Have you ever felt unproductive in the process of starting your emulator? Don't want to start Android Studio to start the emulator 😣?&lt;/p&gt;

&lt;p&gt;Here is one pro tip for you !!! &lt;em&gt;You can start your emulator without starting Android Studio.&lt;/em&gt; Here is how to do this 👇!!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;if (You know your emulator name) {&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your terminal and run the following command
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter emulators --launch [your_emulator_name]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;You will have your emulator running by now🥳, If so, you can skip the below part and directly go to Hot Reload vs Hot Restart &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;} else {&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open your command prompt and enter this command. This is your Sdk location.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To get the list of emulators you have, use the following command and the list of your emulators will be displayed. Copy the name of emulator you want to run. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run the below command replacing &lt;code&gt;&amp;lt;your_emulator_name&amp;gt;&lt;/code&gt; with your emulator name. Your emulator will start running 🥳!! If so, you can skip the below part and directly go to Hot Reload vs Hot Restart &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the above method &lt;strong&gt;doesn't start&lt;/strong&gt; your emulator 🙄😫, May be you have upgraded your Android Studio, try this 👇&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open your Command prompt and enter this command.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     %LOCALAPPDATA%/Android/Sdk/emulator

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Run the below command replacing &lt;code&gt;&amp;lt;your_emulator_name&amp;gt;&lt;/code&gt; with your emulator name. Your emulator will start running !!! 🥳
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     emulator -avd &amp;lt;your_emulator_name&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By now you understood how to start your emulator without starting android studio. Now, lets see the two most important and most used features in flutter development and the difference between them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hot Reload vs Hot Restart (vs🔁)
&lt;/h2&gt;

&lt;p&gt;Both Hot Reload and Hot Restart helps to decrease the execution time of our app once we execute it. They can only be used if wehave executed our program once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Reload&lt;/strong&gt; is the easiest and the fastest function which helps you to apply changes, fix bugs, creating UIs, and add features. It takes approximately one second to perform its functionality. In hot reload it does not destroy the preserved state.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Restart&lt;/strong&gt; has a slightly different functionality as compared to a hot reload. It destroys the preserved states of our app, and the code gets fully compiled again and starts from the default state. It takes more time as compared to hot reload but takes less time than the full restart function.&lt;/p&gt;

&lt;h3&gt;
  
  
  A simple analogy to understand this Clearly 🤯-&amp;gt;😊
&lt;/h3&gt;

&lt;p&gt;Enough of these technical details, here is an analogy that helps us understand this difference very clearly. I have read this in some article, and hope it will be useful.&lt;/p&gt;

&lt;p&gt;I knew how stressful you feel having to pack anew every time you wish to travel🧳 (except if you love packing like me 😁), it requires time to pack because, if you dont, you end up forgetting lots of important things, and we cant have that, right?&lt;/p&gt;

&lt;p&gt;So, you recently decided to get a travel box and pack up some very basic things that youd need anytime you was on a trip. In this bag, you stuffed your hairbrush, toothbrush, toothpaste, some face masks, a sanitizer, towel and nightwear. Thats a lot😜. But these are basic needs, and you wouldnt wanna be uncomfortable far from home.&lt;/p&gt;

&lt;p&gt;Now, you get a call from a friend inviting you to her wedding next week. The question is Do you need to unpack all your bags to add a dress, or do you just add a dress and a pair of heels to your bag🤔🙄? I mean, its not a tech event, but the already-packed basics are still things that you will need. So, since you still need these basic things, all you have to do is just add a dress instead of emptying the entire box, right?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Now, lets relate this story to Hot Reload and Hot Restart 🤷👉(&lt;/em&gt;&lt;/strong&gt;🧳&lt;strong&gt;&lt;em&gt;)&lt;/em&gt;&lt;/strong&gt;👈🤷&lt;/p&gt;

&lt;p&gt;The function of hot reload is quite similar to just adding the dress. Hot reload implements the change in your UI in a couple of seconds, without reloading the whole app or messing with inputs and variables.&lt;/p&gt;

&lt;p&gt;If you don't want to carry extra luggage in your bag, then you remove the unwanted things and add the needed things. This is similar to the functionality of Hot Restart 🔁. Hot restart, on the other hand, saves time by just implementing the functionality based on the closest build class in less than 10secs without restarting the whole app. Restarting the whole app wouldve done the same thing, but it wouldve done it in 40 seconds.&lt;/p&gt;

&lt;p&gt;In the above case, removing all the things from the bag and start adding only the things you need is similar to what Full Restart does. It compiles everything from first and launches the application🌕.&lt;/p&gt;

&lt;p&gt;Finally,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;(Fastest 🏃💨💨) Hot reload loads code changes into the VM and re-builds the widget tree, preserving the app state; it doesnt rerun main() or initState().&lt;/li&gt;
&lt;li&gt;(Slower then hot reload and Faster than full restart 🏃💨) Hot restart loads code changes into the VM, and restarts the Flutter app, losing the app state. &lt;/li&gt;
&lt;li&gt;(Slowest 🏃) Full restart restarts the iOS, Android, or web app. This takes longer because it also recompiles the Java / Kotlin / ObjC / Swift code. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What's Next?
&lt;/h3&gt;

&lt;p&gt;Thank you for reading so far🙏. I hope you enjoyed following it and cleared all the confusions in your mind 😖🧹😊 related to Hot Reload and Hot Restart and also got the trick to start your emulator without starting Android Studio.&lt;/p&gt;

&lt;p&gt;In the next part, we will discuss &lt;strong&gt;Widgets&lt;/strong&gt; (Basics of Flutter) in detail !! So Stay Tuned👀👀!!!!&lt;/p&gt;

&lt;p&gt;Do share your valuable suggestions and your honest feedback, also Constructive Criticism. If you have any comments, questions, or concerns, Do comment them, I am more than happy to take them💬.&lt;/p&gt;

&lt;p&gt;Happy Learning 😊👍!!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Jumpstart Your Flutter Journey: A Guide to Set Up Your Development Environment</title>
      <dc:creator>Sree Gayathri Sidamsetti</dc:creator>
      <pubDate>Mon, 25 Jan 2021 04:31:11 +0000</pubDate>
      <link>https://dev.to/sree_gaya3/jumpstart-your-flutter-journey-a-guide-to-set-up-your-development-environment-3m2e</link>
      <guid>https://dev.to/sree_gaya3/jumpstart-your-flutter-journey-a-guide-to-set-up-your-development-environment-3m2e</guid>
      <description>&lt;p&gt;Hello Guys👋.&lt;/p&gt;

&lt;p&gt;I was thinking of writing technical articles for many months and am stuck on where to start and what to write in my first article🤔. Recently, I started learning Flutter and thought that documenting my learnings would be helpful. So finally, my first technical article is here📝😀.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up your Flutter Environment
&lt;/h2&gt;

&lt;p&gt;The process of setting up the flutter environment depends on the Operating System you use.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Windows &lt;/li&gt;
&lt;li&gt;macOs&lt;/li&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;Chrome OS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am showing the set up on Windows in this one. For the remaining platforms you can find the detailed instructions on Flutter official Documentation &lt;a href="https://flutter.dev/docs/get-started/install"&gt;Install on macOS/Linux/Chrome OS&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Get the Flutter SDK
&lt;/h3&gt;

&lt;p&gt;To Install Flutter on Windows, First download the Flutter SDK from &lt;a href="https://flutter.dev/docs/get-started/install/windows"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KN4S9yVW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611403568174/wi7Fg_xZV.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KN4S9yVW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611403568174/wi7Fg_xZV.png" alt="2021-01-23 (4).png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To download the latest stable release of the Flutter SDK, click on that blue button. A zip folder with the name similar to_flutter_windows_a.b.c-stable.zip_ will be downloaded. Extract this zip folder into a location in your PC where you want to store the flutter files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Donot place the flutter folder in a directory like *&lt;em&gt;C:\Program Files*&lt;/em&gt; , because this requires extra privilages.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Updating the Path
&lt;/h3&gt;

&lt;p&gt;If you want to run flutter from anywhere in your PC (like windows console, terminals in editors,...), you have to update your &lt;strong&gt;PATH&lt;/strong&gt; environment variable. You can do that by following below steps :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the File Explorer, got into the &lt;strong&gt;flutter folder&lt;/strong&gt; (the one you placed in the before step) and you will see a folder named &lt;strong&gt;bin&lt;/strong&gt; , go into bin and click on the search bar to select the &lt;strong&gt;path&lt;/strong&gt; and copy it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2hvGcf9V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611411551444/Kvdyyg4MD.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2hvGcf9V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611411551444/Kvdyyg4MD.png" alt="2021-01-23 (6).png" width="880" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the start search bar, type 'env' and then select the &lt;strong&gt;Edit the system environment variables.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Under the &lt;strong&gt;user variables&lt;/strong&gt; , select &lt;strong&gt;Path&lt;/strong&gt; , click on &lt;strong&gt;new&lt;/strong&gt; , and paste the path of the bin folder.&lt;/li&gt;
&lt;li&gt;Click ok, ok, ok (in all the windows we opened for updating path)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To check if you have done the above step right, Go to your windows console and type &lt;strong&gt;flutter&lt;/strong&gt; and the output should look look this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qa3eogdI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611411908331/G8BCSwi0r.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qa3eogdI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611411908331/G8BCSwi0r.jpeg" alt="2021-01-23(7).jpg" width="880" height="686"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Android setup
&lt;/h3&gt;

&lt;p&gt;To create Flutter apps for iOS or Android you need to setup emulators which we can use to run our apps and see the changes easily. You can set up the emulators by following this &lt;a href="https://developer.android.com/studio"&gt;Android setup&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Setting up an Editor
&lt;/h3&gt;

&lt;p&gt;You can use any editors to develop flutter apps. Most recommended editors are Android Studio, IntelliJ, VS Code, Emacs. In this, I will show how to set up VS Code for flutter development. However for other editors, there are detailed instructions given in the flutter documentation which you can follow &lt;a href="https://flutter.dev/docs/get-started/editor?tab=androidstudio"&gt;editor setup&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Steps to set up Visual Studio Code:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Download the latest version of Visual Studio Code from &lt;a href="https://code.visualstudio.com/"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Start VS Code, and go to &lt;strong&gt;View -&amp;gt; Command Palette&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Type &lt;em&gt;Install&lt;/em&gt; and then select &lt;strong&gt;Extensions: Install Extensions&lt;/strong&gt; , an extensions tab will open on the left side.&lt;/li&gt;
&lt;li&gt;In the search bar of extensions, type &lt;em&gt;flutter&lt;/em&gt; and select &lt;strong&gt;Flutter&lt;/strong&gt; and click &lt;strong&gt;Install&lt;/strong&gt;. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IoU-U8G3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611503088006/pPkDr9CeC.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IoU-U8G3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611503088006/pPkDr9CeC.png" alt="2021-01-24 (7).png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will also install the Dart Plugin, but if you want to be sure, you can install &lt;strong&gt;Dart Plugin&lt;/strong&gt; by following the same steps as above (type &lt;em&gt;dart&lt;/em&gt; in the search bar and select &lt;strong&gt;Dart&lt;/strong&gt; ).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: VS Code needs Reloading whenever the plugins are downloaded.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Check the status of your Setup:
&lt;/h3&gt;

&lt;p&gt;As of now, you have downloaded and installed Flutter SDK, Set up an emulator and also set up your editor. You can check whether you have installed all these correctly or not. To check the status of you Setup :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Make Sure you start your emulator before checking the status of your Installation.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Method 1 : Through Command Palette
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;In VS Code, go to &lt;strong&gt;View -&amp;gt; Command Palette&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Type &lt;em&gt;doctor&lt;/em&gt; , and select &lt;strong&gt;Flutter: Run Flutter Doctor&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You will see the output similar to the one below (in OUTPUT Pane)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6PfsdZtB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611503762269/XS7hlkEX7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6PfsdZtB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611503762269/XS7hlkEX7.png" alt="2021-01-24 (9).png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Method 2 : Through Terminal in VS Code
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;In VS Code, go to &lt;strong&gt;Terminal -&amp;gt; New Terminal&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;run this command
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter doctor

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;You will see the output similar to the one below&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E1EKI_N1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611503722749/YDLJsaEOK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E1EKI_N1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611503722749/YDLJsaEOK.png" alt="2021-01-24 (8).png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Create and Run your first Flutter App
&lt;/h3&gt;

&lt;h4&gt;
  
  
  a. Create the Flutter App:
&lt;/h4&gt;

&lt;p&gt;You can create Flutter App through &lt;strong&gt;Command Palette&lt;/strong&gt; in VS Code.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In VS Code, go to &lt;strong&gt;View -&amp;gt; Command Palette&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Type &lt;em&gt;flutter&lt;/em&gt; and select &lt;strong&gt;Flutter: New Application Project&lt;/strong&gt; , and then enter the name of the project and press &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Now, select a folder in which you want to create your project, and wait for some time untill the project files are created.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  b. Run the App:
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Locate the &lt;strong&gt;blue bar&lt;/strong&gt; at the bottom of the window.&lt;/li&gt;
&lt;li&gt;You will either see &lt;strong&gt;No Device&lt;/strong&gt; or &lt;strong&gt;Name of the emulator&lt;/strong&gt; at the right side of the blue bar.&lt;/li&gt;
&lt;li&gt;If you can see your emulator, click on emulator.&lt;/li&gt;
&lt;li&gt;If you see &lt;strong&gt;No Device&lt;/strong&gt; , Then click on no device, and you will see a prompt where you can select your emulator.&lt;/li&gt;
&lt;li&gt;Next, go to &lt;strong&gt;Run -&amp;gt; Start Debugging&lt;/strong&gt; or press &lt;strong&gt;F5&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Wait for the emulator to launch and the progress will be printed in &lt;strong&gt;Debug Console&lt;/strong&gt; view.&lt;/li&gt;
&lt;li&gt;Let the app build and you can see the app on your emulator.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Default App is very simple. When we run it, The terminal look like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---zAW0Ixn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611505502025/sTFiPpGW7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---zAW0Ixn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611505502025/sTFiPpGW7.png" alt="2021-01-24 (10).png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The App on the emulator looks similar to this one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uoG-9Say--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611505427751/Xp_r49NgK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uoG-9Say--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1611505427751/Xp_r49NgK.png" alt="2021-01-24 (11).png" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app contains&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A header portion also known as App Bar with text "Flutter Demo Home Page".&lt;/li&gt;
&lt;li&gt;There are two text parts in the center of the screen &lt;/li&gt;
&lt;li&gt;A + button at the bottom right.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What this simple app does is it counts the number of times we clicked the + button.&lt;/p&gt;

&lt;p&gt;And yeah, you have successfully created and ran your first Flutter App👏🥳.&lt;/p&gt;

&lt;p&gt;That's all for this article. I hope this helped you in setting up your Flutter environment. Stay tuned for the next one.&lt;/p&gt;

&lt;p&gt;If you have any comments, questions, or concerns? I am more than happy to take them💬.&lt;/p&gt;

&lt;p&gt;Happy Learning 👍!!!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
