<?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: Lakshmi Warrier</title>
    <description>The latest articles on DEV Community by Lakshmi Warrier (@lakshmiwarrier).</description>
    <link>https://dev.to/lakshmiwarrier</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%2F518833%2F2138762f-edf2-427f-a67b-c7ae4af8be78.png</url>
      <title>DEV Community: Lakshmi Warrier</title>
      <link>https://dev.to/lakshmiwarrier</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lakshmiwarrier"/>
    <language>en</language>
    <item>
      <title>Basic Hero Animation </title>
      <dc:creator>Lakshmi Warrier</dc:creator>
      <pubDate>Sun, 06 Feb 2022 19:21:39 +0000</pubDate>
      <link>https://dev.to/lakshmiwarrier/basic-hero-animation-40</link>
      <guid>https://dev.to/lakshmiwarrier/basic-hero-animation-40</guid>
      <description>&lt;p&gt;We all like a pinch of animation in everything, don't we?&lt;/p&gt;

&lt;p&gt;Curious by the word Hero in Flutter, I decided to check it out and implement a very basic, yet satisfying app that would just zoom a pic when clicked.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--huSpXGLI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkbtdkty9iivd97fj4yf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--huSpXGLI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkbtdkty9iivd97fj4yf.gif" alt="hero animation" width="210" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For Hero, there is no need for getting a separate dependency.&lt;/p&gt;

&lt;p&gt;Get to the point!&lt;br&gt;
Assuming you are familiar with Flutter, let's get started!&lt;/p&gt;
&lt;h1&gt;
  
  
  Create a new Flutter project
&lt;/h1&gt;

&lt;p&gt;Feel free to name it anything you feel is right, I named it &lt;code&gt;hero_animation&lt;/code&gt;. Open the &lt;code&gt;main.dart&lt;/code&gt; file in the demo app Flutter provides and clear the body in the &lt;code&gt;build&lt;/code&gt; method looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;_MyHomePageState&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;MyHomePage&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="n"&gt;Widget&lt;/span&gt; &lt;span class="n"&gt;build&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Scaffold&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;appBar:&lt;/span&gt; &lt;span class="n"&gt;AppBar&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;title:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
      &lt;span class="o"&gt;),&lt;/span&gt;
      &lt;span class="nl"&gt;body:&lt;/span&gt; &lt;span class="n"&gt;Column&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Widget&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;[]));&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For visualising the Hero animation in a better way, I decided to put the image that I plan to animate at the bottom left of the screen using the &lt;code&gt;MainAxisAlignment.end&lt;/code&gt; property of the column widget.&lt;br&gt;
Before adding the hero effect, I would suggest you build the basic look of your app which is just an image and a text inside a card here.&lt;/p&gt;

&lt;p&gt;I also noticed that the effect was so visually appealing when I used a transparent image.&lt;br&gt;
I downloaded &lt;a href="https://docs.flutter.dev/assets/images/dash/Dashatars.png"&gt;a transparent image&lt;/a&gt; as &lt;code&gt;dashatars.png&lt;/code&gt; to the assets folder that I made in the root directory of my app. Don't forget to add the image in &lt;code&gt;pubspec.yaml&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;flutter&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;assets&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;assets/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Making the card widget
&lt;/h1&gt;

&lt;p&gt;Since my card had an image and text, I used a column widget as its child. I also added necessary paddings to make it look better than the default style.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;Card&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Column&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
    &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;
      &lt;span class="n"&gt;Padding&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;padding:&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;EdgeInsets&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;all&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;8.0&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
          &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asset&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
            &lt;span class="s"&gt;"assets/dashatars.png"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
            &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
          &lt;span class="o"&gt;),&lt;/span&gt;
        &lt;span class="o"&gt;),&lt;/span&gt;
       &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;Padding&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
         &lt;span class="nl"&gt;padding:&lt;/span&gt; &lt;span class="n"&gt;EdgeInsets&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;all&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;8.0&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
           &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
             &lt;span class="s"&gt;"Meet Dash!"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
             &lt;span class="nl"&gt;style:&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Colors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;blue&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
           &lt;span class="o"&gt;))]))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also use &lt;code&gt;Image.network(url)&lt;/code&gt; instead of &lt;code&gt;Image.asset(path)&lt;/code&gt;.&lt;br&gt;
Following my steps would have given you this screen 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9Zpa_wmz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lqxx4drvlslutm2swlrj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9Zpa_wmz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lqxx4drvlslutm2swlrj.png" alt="Screen 1" width="211" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This image is not clickable now, let's wrap the card with a GestureDetector and make it take us to the next page on tapping the card.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The wrapping can be easily done by 'Wrap widget with...' option in Ctrl + . in Visual Studio Code, or by clicking the small yellow bulb that pops up in the left.&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;GestureDetector&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Card&lt;/span&gt;&lt;span class="o"&gt;(...),&lt;/span&gt;
  &lt;span class="nl"&gt;onTap:&lt;/span&gt; &lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Navigator&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
      &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
      &lt;span class="n"&gt;PageRouteBuilder&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;transitionDuration:&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;Duration&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;milliseconds:&lt;/span&gt; &lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
          &lt;span class="nl"&gt;pageBuilder:&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;__&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;___&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;SecondPage&lt;/span&gt;&lt;span class="o"&gt;()));&lt;/span&gt;
  &lt;span class="o"&gt;},&lt;/span&gt;
 &lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The card should recieve clicks now.&lt;/p&gt;

&lt;p&gt;Even though a MaterialPageRoute can be used easily, I chose PageRouteBuilder because it had the &lt;code&gt;transitionDuration&lt;/code&gt; property which gave a nicer and more visible animation.&lt;/p&gt;

&lt;p&gt;At this point, you would get an error stating SecondPage() does not exist. Let's fix that!&lt;/p&gt;

&lt;h1&gt;
  
  
  Make the second page
&lt;/h1&gt;

&lt;p&gt;Inside the &lt;code&gt;lib/&lt;/code&gt; directory, create a new file, &lt;code&gt;second_pg.dart&lt;/code&gt;. Make a stateless widget &lt;code&gt;SecondPage&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Typing &lt;code&gt;stless&lt;/code&gt; in VSCode would create all the boilerplate code and you will just have to type in the class name.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now, this is where we would show the bigger image of Dash and write a short description.&lt;br&gt;
Remove the container, and make it a Scaffold with a default AppBar and a body.&lt;br&gt;
The body would have a Column wrapped in a Center widget with two children - the Dash image and the description.&lt;br&gt;
I  set the height of the image to 300 so that the growth of the image is clear. For the text description, I used an Expanded widget so that it looks good. &lt;br&gt;
For the code to not be congested with the description, before the &lt;code&gt;return&lt;/code&gt; statement of the build method, create a field &lt;code&gt;const description =  "This is Dash, a chubby hummingbird, the mascot of Flutter and Dart.\n\nDash was originally a Dart mascot, not a Flutter mascot.\n\nEarly on, a hummingbird image was used to represent Dart. The hummingbird represents that Dart is a speedy language.\n\nMega-Dash, a life-sized mascot is currently resting in a locked-down Google office."&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="nl"&gt;body:&lt;/span&gt; &lt;span class="n"&gt;Center&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Column&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
          &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;
            &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asset&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
                &lt;span class="s"&gt;"assets/dashatars.png"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
                &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
              &lt;span class="o"&gt;),&lt;/span&gt;
            &lt;span class="n"&gt;Expanded&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
              &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Container&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
                &lt;span class="nl"&gt;decoration:&lt;/span&gt; &lt;span class="n"&gt;BoxDecoration&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
                  &lt;span class="nl"&gt;color:&lt;/span&gt; &lt;span class="n"&gt;Colors&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;blue&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;shade100&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
                  &lt;span class="nl"&gt;borderRadius:&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;BorderRadius&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;only&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
                      &lt;span class="nl"&gt;topRight:&lt;/span&gt; &lt;span class="n"&gt;Radius&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;circular&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
                      &lt;span class="nl"&gt;topLeft:&lt;/span&gt; &lt;span class="n"&gt;Radius&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;circular&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="o"&gt;))),&lt;/span&gt;
                &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
                    &lt;span class="nl"&gt;style:&lt;/span&gt; &lt;span class="n"&gt;TextStyle&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;fontSize:&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="o"&gt;),&lt;/span&gt;
     &lt;span class="o"&gt;),),)],),)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DiFEkFvN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1epu3fb17lf59i25hy0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DiFEkFvN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1epu3fb17lf59i25hy0x.png" alt="screen2" width="211" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Running the app should look like this. The screen just changes without any animation.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fr-klC7_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6yuq9o5joczb2pqfmsso.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fr-klC7_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6yuq9o5joczb2pqfmsso.gif" alt="Non-hero animation" width="210" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Now that the basic UI is done, let's make the image a hero&lt;/p&gt;
&lt;h1&gt;
  
  
  Make Dash fly like a Hero&lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Head to &lt;code&gt;main.dart&lt;/code&gt;, wrap the GestureDetector with a Hero() widget. This will tell you that a parameter &lt;code&gt;tag&lt;/code&gt; is required. Set the tag as &lt;code&gt;"dash"&lt;/code&gt;. This tag helps Flutter recognise a Hero in both pages so that the animation can be done.&lt;br&gt;
The code now looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="nl"&gt;body:&lt;/span&gt; &lt;span class="n"&gt;Column&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
        &lt;span class="nl"&gt;mainAxisAlignment:&lt;/span&gt; &lt;span class="n"&gt;MainAxisAlignment&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;end&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
        &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Widget&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;[&lt;/span&gt;
          &lt;span class="n"&gt;Hero&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
            &lt;span class="nl"&gt;tag:&lt;/span&gt; &lt;span class="s"&gt;"dash"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
            &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;GestureDetector&lt;/span&gt;&lt;span class="o"&gt;(...))])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, head to &lt;code&gt;second_pg.dart&lt;/code&gt; and tell Flutter that the small image in the first screen should be grown to the image shown in second screen. Use the same tag &lt;code&gt;"dash"&lt;/code&gt; here too.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt; &lt;span class="n"&gt;Center&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
   &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Column&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
     &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;
       &lt;span class="n"&gt;Hero&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
         &lt;span class="nl"&gt;tag:&lt;/span&gt; &lt;span class="s"&gt;"dash"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
         &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;asset&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
           &lt;span class="s"&gt;"assets/dashatars.png"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
           &lt;span class="nl"&gt;height:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
          &lt;span class="o"&gt;),&lt;/span&gt;
        &lt;span class="o"&gt;),]))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now run the app, you can see the small image gracefully growing when the screen changes. 🦸‍♀️&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--huSpXGLI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkbtdkty9iivd97fj4yf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--huSpXGLI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dkbtdkty9iivd97fj4yf.gif" alt="hero animation" width="210" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Making something fly in or out of the screen is far better than the default boring page transition. Advanced forms of Hero animations takes page transition to the next level and it gives a zest to the app with minimal effort.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>programming</category>
    </item>
    <item>
      <title>Dual booting Windows 10 and Ubuntu 20.04 - with RST issue fixed </title>
      <dc:creator>Lakshmi Warrier</dc:creator>
      <pubDate>Sun, 29 Nov 2020 11:41:47 +0000</pubDate>
      <link>https://dev.to/lakshmiwarrier/dual-booting-windows-10-and-ubuntu-20-04-with-rst-issue-fixed-4le8</link>
      <guid>https://dev.to/lakshmiwarrier/dual-booting-windows-10-and-ubuntu-20-04-with-rst-issue-fixed-4le8</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclaimer: Steps after taking ISO image can quite vary with respect to the laptop that you use. This blog helps best for the ones using Acer Aspire 7 (i5, 9th gen)&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Caution: not a very big tech-freak, more of a story-teller&lt;/em&gt; 😁&lt;/p&gt;

&lt;p&gt;Fix the &lt;em&gt;Turn off RST&lt;/em&gt; right away&lt;br&gt;
&lt;strong&gt;Why Ubuntu/Linux?&lt;/strong&gt;&lt;br&gt;
If you are a person who's fed up of downloading millions of stuffs from different sources for a software and still facing errors like something's missing or a person who's lazy enough to move your mouse around, Linux OS would be better for you 😏&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preferable Pre-requisites:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;4+ GB RAM&lt;/li&gt;
&lt;li&gt;If Windows 10 is pre-installed, you do not need to worry if Linux can be dual-booted in your system. It surely can. &lt;/li&gt;
&lt;li&gt;30+ GB of continuous free space to spare. (Preferably 60+ GB if you are going to use Linux regularly)&lt;/li&gt;
&lt;li&gt;A USB of 4+ GB capacity for storing Ubuntu ISO file for dual booting &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  So, all the best and let's begin
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Step 0: Back up everything (optional) - &lt;em&gt;I didn't though&lt;/em&gt;
&lt;/h4&gt;
&lt;h4&gt;
  
  
  Step 1: Download the &lt;a href="https://ubuntu.com/download/desktop" rel="noopener noreferrer"&gt;ISO image&lt;/a&gt; of Ubuntu.
&lt;/h4&gt;

&lt;p&gt;By default it gets downloaded into Software in C:/ though it doesn't matter much where it gets downloaded. &lt;/p&gt;

&lt;p&gt;While you're at it, let's make a bootable USB&lt;/p&gt;
&lt;h4&gt;
  
  
  Step 2: Making a bootable/live USB
&lt;/h4&gt;

&lt;p&gt;Even though I used &lt;a href="https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/" rel="noopener noreferrer"&gt;Universal USB Installer&lt;/a&gt; for creating a bootable USB, there are other software too like &lt;a href="https://rufus.ie/" rel="noopener noreferrer"&gt;Rufus&lt;/a&gt; and &lt;a href="https://sourceforge.net/projects/unetbootin/" rel="noopener noreferrer"&gt;UNetbootin&lt;/a&gt; which might require a download.&lt;/p&gt;

&lt;p&gt;Plug in your USB.&lt;/p&gt;

&lt;p&gt;In UUI, clicking on the "Download UUI" will bring up a new tab and choose your file location to save it. Go to the location where you have the file and follow:&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%2Fi%2F70kpmyl04nnk4jm2swep.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%2Fi%2F70kpmyl04nnk4jm2swep.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select your installed Linux Distribution, in this case, Ubuntu&lt;br&gt;
and browse-select its ISO file.&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%2Fi%2F9sg5n3vz3js5bagnwziu.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%2Fi%2F9sg5n3vz3js5bagnwziu.png" alt="Alt Text"&gt;&lt;/a&gt;&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%2Fi%2Fbgowhlm2ff4wjzk40nss.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%2Fi%2Fbgowhlm2ff4wjzk40nss.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, choose the USB which is to be made bootable and &lt;strong&gt;format&lt;/strong&gt; it if you wished to. I didn't though, because I had enough space for Ubuntu ISO File too. &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%2Fi%2Fb4hbi4342g9hgk0f2lss.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%2Fi%2Fb4hbi4342g9hgk0f2lss.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on &lt;code&gt;CREATE&lt;/code&gt; and you hold a bootable USB in your hand now. &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%2Fi%2Fnoacwp0hb3kr9s2xbgzs.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%2Fi%2Fnoacwp0hb3kr9s2xbgzs.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Step 3: Shrink and create space for Ubuntu
&lt;/h4&gt;

&lt;p&gt;For that, open &lt;strong&gt;Disk Management&lt;/strong&gt; and right click on  C: &lt;br&gt;
&lt;em&gt;P.S. : I took this screen print months after dualbooting Ubuntu&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%2Fi%2F2zzf8sn9bfuakqp7gatf.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%2Fi%2F2zzf8sn9bfuakqp7gatf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Choose Shrink Volume...&lt;br&gt;
A window with the image as a part of it pops up. Ideally, type in 20000&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%2Fi%2Fzei4ndw3kn9063c76us8.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%2Fi%2Fzei4ndw3kn9063c76us8.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
As the process gets completed you'll find unallocated space and that's where Ubuntu will live. &lt;/p&gt;
&lt;h4&gt;
  
  
  Step 4: Boot into Ubuntu and see if there's an issue due to RST in your system.
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Find Boot Sequence Key. For Acer Laptops, it's&lt;/em&gt;  F12 .&lt;/p&gt;

&lt;p&gt;Reboot your system with USB plugged in and continuously press  F12 . Choose Ubuntu and wait till it loads. &lt;br&gt;
A page like this will be loaded. &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%2Fi%2F7szq1p2dv2jjvtb3l3tv.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%2Fi%2F7szq1p2dv2jjvtb3l3tv.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But when you try to &lt;code&gt;Install Ubuntu&lt;/code&gt; you'll get this screen...&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%2Fi%2F3opvjmf0c8bj7k6yylek.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%2Fi%2F3opvjmf0c8bj7k6yylek.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, yep... That's the whole reason I'm writing this. Also, I'm just a beginner and not much exposed to the words like &lt;code&gt;UEFI/Legacy, SATA- AHCI/RAID/IDE&lt;/code&gt; and all. So, until I learn about them, all I can do is type out a solution that worked, &lt;strong&gt;without wiping off the pre-installed Windows 10&lt;/strong&gt; &lt;br&gt;
Anyway, click on the &lt;code&gt;restart&lt;/code&gt; option and get back into Windows.&lt;/p&gt;
&lt;h4&gt;
  
  
  Step 5 Fixing the issue
&lt;/h4&gt;

&lt;p&gt;In Windows, open up command prompt as &lt;strong&gt;an administrator&lt;/strong&gt; (&lt;code&gt;Run as administrator&lt;/code&gt;) and type in&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;bcdedit /set {current} safeboot minimal&lt;/code&gt;&lt;br&gt;
&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%2Fi%2Fe1uc1sioh5pik1obyejo.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%2Fi%2Fe1uc1sioh5pik1obyejo.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnyyj81pvyv70ld73hhun.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%2Fi%2Fnyyj81pvyv70ld73hhun.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Find your BIOS setup key. For Acer Laptops it's&lt;/em&gt;  F2 .&lt;br&gt;
Reboot your system with USB plugged in and continuously press F2&lt;br&gt;
It should take you to BIOS setup. &lt;br&gt;
In my laptop, pressing Ctrl + S in &lt;code&gt;Main&lt;/code&gt; tab listed every advanced options.&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%2Feu6ngp2urfeywi8pfyss.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%2Feu6ngp2urfeywi8pfyss.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
On the &lt;code&gt;information&lt;/code&gt; page itself new rows get added and search for &lt;code&gt;SATA mode&lt;/code&gt; and change it to &lt;code&gt;AHCI&lt;/code&gt; instead of &lt;code&gt;RAID&lt;/code&gt; (or in rare cases, &lt;code&gt;IDE&lt;/code&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%2Fi%2Fwlidz8sgx5nxvrxjkf0q.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%2Fi%2Fwlidz8sgx5nxvrxjkf0q.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
For some of non-Acer laptops, this option is named as &lt;code&gt;Storage&lt;/code&gt; in &lt;code&gt;Configuration&lt;/code&gt; tab.&lt;/p&gt;

&lt;p&gt;A frightening question will be asked,&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;All existing data stored on the drives will be erased when resetting the controller mode. Do you want to proceed? [Yes] [No]&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Don't worry, nothing will happen. Select &lt;code&gt;YES&lt;/code&gt;&lt;br&gt;
Press F10 and come out of BIOS and you will be automatically taken to &lt;code&gt;safe boot mode&lt;/code&gt;. This just ensures that your Windows is okay to proceed with dual booting.&lt;br&gt;
Open Command Prompt and press enter after typing in&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;bcdedit /deletevalue {current} safeboot&lt;/code&gt;&lt;br&gt;
&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%2Fi%2Fmq28k2149ug3j4qoxl7n.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%2Fi%2Fmq28k2149ug3j4qoxl7n.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 6: Setting Sails
&lt;/h4&gt;

&lt;p&gt;Restart the system and now, choose &lt;code&gt;Ubuntu&lt;/code&gt; from the boot menu (or &lt;code&gt;Try Ubuntu&lt;/code&gt;, if it exists). &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%2Fi%2Fchg2qcnbt3r5naeiia2b.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%2Fi%2Fchg2qcnbt3r5naeiia2b.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
I followed &lt;a href="https://www.linuxtechi.com/ubuntu-20-04-lts-installation-steps-screenshots/" rel="noopener noreferrer"&gt;this site&lt;/a&gt; for rest of the steps and VOILA, your Ubuntu is ready to use&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%2Fi%2F6f5algcp50k6jbc47h5i.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%2Fi%2F6f5algcp50k6jbc47h5i.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Not gonna lie: A 50+ clicks and tiring setups on Windows while software installation is replaced by just a single line on Terminal Window, &lt;code&gt;sudo apt install ___&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Good Luck! Keep Learning&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Courtesy: My tech-freak dad, loads and loads of websites, YouTube tutorials and two whole days&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>beginners</category>
      <category>windows10</category>
      <category>dualboot</category>
    </item>
  </channel>
</rss>
