<?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: Vrushali</title>
    <description>The latest articles on DEV Community by Vrushali (@vrushali_dev_15).</description>
    <link>https://dev.to/vrushali_dev_15</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%2F3296637%2F367e5386-7941-4c96-ad7b-d5bf2de23c7d.png</url>
      <title>DEV Community: Vrushali</title>
      <link>https://dev.to/vrushali_dev_15</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vrushali_dev_15"/>
    <language>en</language>
    <item>
      <title>Math in Jetpack Compose Animations</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Wed, 03 Dec 2025 06:23:47 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/math-in-jetpack-compose-animations-41k4</link>
      <guid>https://dev.to/vrushali_dev_15/math-in-jetpack-compose-animations-41k4</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Math in Jetpack Compose Animations — &lt;a href="https://medium.com/proandroiddev/hidden-math-behind-smooth-jetpack-compose-animations-b279ef6e6c78" rel="noopener noreferrer"&gt;Read the full article →&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jetpack Compose animations look simple on the surface, but there’s a lot of clever math behind easing, interpolation, and frame-smooth transitions. This article explains it beautifully.&lt;/p&gt;

</description>
      <category>android</category>
      <category>jetpackcompose</category>
      <category>animation</category>
      <category>learning</category>
    </item>
    <item>
      <title>What is a Coroutine? 🤔</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Tue, 28 Oct 2025 14:29:34 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/what-is-a-coroutine-82p</link>
      <guid>https://dev.to/vrushali_dev_15/what-is-a-coroutine-82p</guid>
      <description>&lt;p&gt;💡 What is a Coroutine? 🤔&lt;/p&gt;

&lt;p&gt;A simple question — yet one that traps many Android developers.&lt;/p&gt;

&lt;p&gt;Most of us say:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“It’s used to run background tasks.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;❌ Sounds correct... until the interviewer says,  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“That’s wrong.” 😅&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So what &lt;em&gt;is&lt;/em&gt; a coroutine really?&lt;/p&gt;

&lt;p&gt;Find out here 👇  &lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 &lt;a href="https://medium.com/stackademic/kotlin-coroutines-explained-why-coroutine-background-task-is-wrong-a2ad222e3cb8" rel="noopener noreferrer"&gt;Kotlin Coroutines Explained: Why “Coroutine = Background Task” is Wrong&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>kotlin</category>
      <category>programming</category>
      <category>android</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Why Kotlin Lets You Write `50_000` Instead of `50000` (Beginner-Friendly)</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Fri, 17 Oct 2025 14:13:02 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/why-kotlin-lets-you-write-50000-instead-of-50000-beginner-friendly-5cg0</link>
      <guid>https://dev.to/vrushali_dev_15/why-kotlin-lets-you-write-50000-instead-of-50000-beginner-friendly-5cg0</guid>
      <description>&lt;p&gt;If you’re new to Kotlin, you might have seen something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;number&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50_000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At first, it might look like a typo. But don’t worry — it’s actually a feature! Kotlin allows underscores in numbers to make large numbers easier to read, just like commas in English numbers.&lt;/p&gt;

&lt;p&gt;Think of it this way:&lt;/p&gt;

&lt;p&gt;50000 → “fifty thousand”&lt;/p&gt;

&lt;p&gt;50_000 → “fifty thousand” (much easier to read)&lt;/p&gt;

&lt;p&gt;🔹 Read the full blog on Medium&lt;br&gt;
For a complete beginner-friendly explanation with more examples, check out my Medium article:&lt;br&gt;
&lt;a href="https://medium.com/@vrushalidev/why-kotlin-lets-you-write-50-000-instead-of-50000-861f132cc25e" rel="noopener noreferrer"&gt;https://medium.com/@vrushalidev/why-kotlin-lets-you-write-50-000-instead-of-50000-861f132cc25e&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>kotlin</category>
      <category>development</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Gradle Isn’t Slow… It’s Leveling Up Your Patience as an Android Dev</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Fri, 26 Sep 2025 12:54:55 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/gradle-isnt-slow-its-leveling-up-your-patience-as-an-android-dev-4gal</link>
      <guid>https://dev.to/vrushali_dev_15/gradle-isnt-slow-its-leveling-up-your-patience-as-an-android-dev-4gal</guid>
      <description>&lt;p&gt;&lt;strong&gt;While Gradle builds your app, it’s actually building your patience 😌&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hit &lt;strong&gt;Run&lt;/strong&gt; in Android Studio 💻, watch Gradle do its thing ⏳, and instead of getting frustrated, treat it as a mini patience workout 🧘‍♂️. Stretch 🤸‍♀️, breathe 😌, sip coffee ☕, or plan a small refactor 💻. Each progress bar is a reminder: coding isn’t just about the result ⚡—it’s about staying calm 🌿.&lt;/p&gt;

&lt;p&gt;Read the full blog here: &lt;a href="https://medium.com/@vrushalidev/gradle-isnt-slow-its-leveling-up-your-patience-as-an-android-dev-7bafab236dfa" rel="noopener noreferrer"&gt;https://medium.com/@vrushalidev/gradle-isnt-slow-its-leveling-up-your-patience-as-an-android-dev-7bafab236dfa&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;🐘 May your builds be fast and your Zen strong. 💖😌&lt;/p&gt;

</description>
      <category>android</category>
      <category>gradle</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
    <item>
      <title>Android Studio Canary, Beta, RC &amp; Stable Explained (in Simple Words)</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Tue, 23 Sep 2025 06:39:58 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/android-studio-canary-beta-rc-stable-explained-in-simple-words-29o9</link>
      <guid>https://dev.to/vrushali_dev_15/android-studio-canary-beta-rc-stable-explained-in-simple-words-29o9</guid>
      <description>&lt;p&gt;New to Android Studio or confused by its update channels?   Check out my simple guide on Canary, Beta, RC &amp;amp; Stable! &lt;/p&gt;

&lt;p&gt;🚀 Canary for explorers · 🧪 Beta for early adopters · 🛠️ RC for testers · 🏗️ Stable for builders — pick what fits your workflow!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@vrushalidev/android-studio-canary-beta-rc-stable-explained-in-simple-words-58fdeb5b6e0b" rel="noopener noreferrer"&gt;Read here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>androidstudio</category>
      <category>programming</category>
      <category>mobile</category>
    </item>
    <item>
      <title>DataStore in Android: The Future of Local Key-Value Storage</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Thu, 18 Sep 2025 15:14:12 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/datastore-in-android-the-future-of-local-key-value-storage-4g3a</link>
      <guid>https://dev.to/vrushali_dev_15/datastore-in-android-the-future-of-local-key-value-storage-4g3a</guid>
      <description>&lt;p&gt;If you're an Android developer, you might still be using &lt;code&gt;SharedPreferences&lt;/code&gt; for storing small data. But Google now recommends &lt;strong&gt;Jetpack DataStore&lt;/strong&gt; as the modern replacement! 🚀&lt;/p&gt;

&lt;p&gt;I wrote a full guide on Medium with examples and best practices:&lt;br&gt;&lt;br&gt;
&lt;a href="https://medium.com/@vrushalidev/datastore-in-android-the-future-of-local-key-value-storage-76f592d0be09" rel="noopener noreferrer"&gt;Read it here →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 Follow me for more Android tips and tutorials!&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>datastore</category>
      <category>jetpack</category>
    </item>
    <item>
      <title>Why Every Android Dev Should Master Arrays Before Anything Else</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Thu, 18 Sep 2025 14:59:20 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/why-every-android-dev-should-master-arrays-before-anything-else-3of6</link>
      <guid>https://dev.to/vrushali_dev_15/why-every-android-dev-should-master-arrays-before-anything-else-3of6</guid>
      <description>&lt;p&gt;Dive into the fundamentals of arrays and discover how they form the backbone of Android development. Learn about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Array indexing &amp;amp; memory layout
&lt;/li&gt;
&lt;li&gt;Traversal, insertion, and deletion
&lt;/li&gt;
&lt;li&gt;How arrays power data structures like &lt;code&gt;ArrayList&lt;/code&gt;, &lt;code&gt;Stack&lt;/code&gt;, &lt;code&gt;Queue&lt;/code&gt;, &lt;code&gt;HashMap&lt;/code&gt;, and &lt;code&gt;Heap&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 &lt;strong&gt;Read the full article here:&lt;/strong&gt; &lt;a href="https://medium.com/@vrushalidev/why-every-android-dev-should-master-arrays-before-anything-else-41b49f5e0802" rel="noopener noreferrer"&gt;Why Every Android Dev Should Master Arrays Before Anything Else&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💬 Share your thoughts and experiences with arrays in Android development! Let's learn and grow together. 👩‍💻&lt;/p&gt;

</description>
      <category>dsa</category>
      <category>kotlin</category>
      <category>android</category>
      <category>mobile</category>
    </item>
    <item>
      <title>How I Built a Flutter Custom Multi-Select Dialog Package</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Fri, 05 Sep 2025 09:44:17 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/how-i-built-a-flutter-custom-multi-select-dialog-package-17co</link>
      <guid>https://dev.to/vrushali_dev_15/how-i-built-a-flutter-custom-multi-select-dialog-package-17co</guid>
      <description>&lt;p&gt;Building custom dialogs in Flutter can be tricky when you want more than the basics.&lt;br&gt;&lt;br&gt;
I recently built a &lt;strong&gt;custom multi-select dialog package&lt;/strong&gt; to make developer life easier — here’s how.  &lt;/p&gt;




&lt;h3&gt;
  
  
  Why a Custom Multi-Select Dialog?
&lt;/h3&gt;

&lt;p&gt;Flutter’s built-in dialogs are great for simple confirmation boxes, but when it comes to &lt;strong&gt;multi-selection with titles, subtitles, and customization&lt;/strong&gt;, you often end up reinventing the wheel.  &lt;/p&gt;

&lt;p&gt;So I decided to create my own reusable package.  &lt;/p&gt;




&lt;h3&gt;
  
  
  Features I Needed
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;✅ Multiple item selection
&lt;/li&gt;
&lt;li&gt;✅ Support for title &amp;amp; subtitle
&lt;/li&gt;
&lt;li&gt;✅ Reusable across projects
&lt;/li&gt;
&lt;li&gt;✅ Clean MVVM-friendly structure
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Core Implementation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;showDialog&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nl"&gt;context:&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;builder:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;MultiSelectDialog&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;title:&lt;/span&gt; &lt;span class="s"&gt;"Choose Items"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nl"&gt;items:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"Option A"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Option B"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Option C"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="nl"&gt;onConfirm:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;selected&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Selected: &lt;/span&gt;&lt;span class="si"&gt;$selected&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;📖 Want the full walkthrough?&lt;br&gt;&lt;br&gt;
&lt;a href="https://medium.com/@vrushalidev/how-i-built-a-flutter-custom-multi-select-dialog-package-1ed09fcd107b" rel="noopener noreferrer"&gt;Read the original blog on Medium →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>android</category>
      <category>package</category>
    </item>
    <item>
      <title>Kotlin Interview Puzzle: Who Wins the Tie? Loops, Reduce &amp; Functional Surprises</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Fri, 05 Sep 2025 09:39:25 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/kotlin-interview-puzzle-who-wins-the-tie-loops-reduce-functional-surprises-3fga</link>
      <guid>https://dev.to/vrushali_dev_15/kotlin-interview-puzzle-who-wins-the-tie-loops-reduce-functional-surprises-3fga</guid>
      <description>&lt;p&gt;Sometimes the simplest puzzles are the sneakiest — especially in &lt;strong&gt;interviews&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Take this one:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Find the longest word in a list.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;cities&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;listOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"rome"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"berlin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"london"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;📖 Want the full story? &lt;a href="https://medium.com/@vrushalidev/kotlin-interview-puzzle-who-wins-the-tie-loops-reduce-and-functional-surprises-dd725ea4f72c" rel="noopener noreferrer"&gt;Read the original blog on Medium&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>android</category>
      <category>java</category>
      <category>dart</category>
    </item>
    <item>
      <title>Flutter Devs: Still Confused Between Hot Reload &amp; Hot Restart?</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Wed, 30 Jul 2025 14:48:10 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/flutter-devs-still-confused-between-hot-reload-hot-restart-3l2p</link>
      <guid>https://dev.to/vrushali_dev_15/flutter-devs-still-confused-between-hot-reload-hot-restart-3l2p</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;🔁 Hot Reload = Caffeine shot ☕&lt;br&gt;&lt;br&gt;
♻️ Hot Restart = Power nap 💤&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🔁 Hot Reload
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Injects updated code into the running app.&lt;/li&gt;
&lt;li&gt;Keeps your app state alive.&lt;/li&gt;
&lt;li&gt;Best for: UI tweaks, small widget edits.&lt;/li&gt;
&lt;li&gt;Just save the file (Ctrl+S / Cmd+S) or click the lightning icon.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ♻️ Hot Restart
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Recompiles &amp;amp; restarts the entire app.&lt;/li&gt;
&lt;li&gt;Resets all state.&lt;/li&gt;
&lt;li&gt;Best for: &lt;code&gt;main()&lt;/code&gt; changes, stuck state issues.&lt;/li&gt;
&lt;li&gt;Use the green restart icon or press &lt;code&gt;r&lt;/code&gt; in terminal during &lt;code&gt;flutter run&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ✅ Quick Tip
&lt;/h3&gt;

&lt;p&gt;When in doubt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Just changing UI?&lt;/strong&gt; → Hot Reload
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Changed logic or something feels off?&lt;/strong&gt; → Hot Restart&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🏷️ Tags
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Flutter&lt;/code&gt; &lt;code&gt;HotReload&lt;/code&gt; &lt;code&gt;HotRestart&lt;/code&gt; &lt;code&gt;Dart&lt;/code&gt; &lt;code&gt;MobileDevelopment&lt;/code&gt; &lt;code&gt;FlutterDev&lt;/code&gt; &lt;code&gt;Debugging&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;Thanks for reading!&lt;br&gt;&lt;br&gt;
📎 Full blog → &lt;a href="https://medium.com/@vrushalidev/flutter-devs-still-confused-between-hot-reload-hot-restart-715a91622875" rel="noopener noreferrer"&gt;Read on Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
    <item>
      <title>3 Smart Ways to Show Toast in Jetpack Compose – Plus a Bonus Hack!</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Sun, 20 Jul 2025 07:10:22 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/3-smart-ways-to-show-toast-in-jetpack-compose-plus-a-bonus-hack-1l3o</link>
      <guid>https://dev.to/vrushali_dev_15/3-smart-ways-to-show-toast-in-jetpack-compose-plus-a-bonus-hack-1l3o</guid>
      <description>&lt;p&gt;When I started learning Android, my senior asked me to “just show a message on the screen.”&lt;/p&gt;

&lt;p&gt;Easy, right?&lt;/p&gt;

&lt;p&gt;I googled around, explored some XML… and then I saw it.&lt;br&gt;&lt;br&gt;
&lt;code&gt;Toast.makeText()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Wait… Toast?! Like… butter toast? 🍞☕&lt;/p&gt;

&lt;p&gt;Yup. Turns out, in Android, a Toast is a little popup message that disappears on its own.&lt;/p&gt;

&lt;p&gt;➡️ In this post, I walk through &lt;strong&gt;3 smart ways to show Toast in Jetpack Compose&lt;/strong&gt;, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The classic way (with context)&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;LaunchedEffect&lt;/code&gt; for side effects&lt;/li&gt;
&lt;li&gt;A cleaner, reusable &lt;code&gt;ToastHandler&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Plus a &lt;strong&gt;bonus hack&lt;/strong&gt; to debug Compose preview with fake Toasts!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🧠 It's beginner-friendly, easy to try, and fun!&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://medium.com/@vrushalidev/3-smart-ways-to-show-toast-in-jetpack-compose-plus-a-bonus-hack-9e35294ac923" rel="noopener noreferrer"&gt;Read the full blog on Medium&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you find it useful, drop a 💬 in the comments or share with a fellow Android dev!&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>jetpackcompose</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How I Learned Riverpod in Flutter: A Beginner’s Step-by-Step Guide</title>
      <dc:creator>Vrushali</dc:creator>
      <pubDate>Wed, 16 Jul 2025 15:18:22 +0000</pubDate>
      <link>https://dev.to/vrushali_dev_15/how-i-learned-riverpod-in-flutter-a-beginners-step-by-step-guide-42jg</link>
      <guid>https://dev.to/vrushali_dev_15/how-i-learned-riverpod-in-flutter-a-beginners-step-by-step-guide-42jg</guid>
      <description>&lt;p&gt;🎯 I recently started learning &lt;strong&gt;Riverpod&lt;/strong&gt; for Flutter and finally built a clean login screen — without using &lt;code&gt;setState&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In this post, I:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used &lt;code&gt;StateProvider&lt;/code&gt; to hold simple state&lt;/li&gt;
&lt;li&gt;Built a form with &lt;code&gt;ConsumerWidget&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Updated UI reactively using &lt;code&gt;ref.watch()&lt;/code&gt; and &lt;code&gt;ref.read()&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📚 Read the full step-by-step blog here:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://medium.com/@vrushalidev/how-i-learned-riverpod-a-step-by-step-guide-for-beginners-like-me-2ef4b2c43b10" rel="noopener noreferrer"&gt;How I Learned Riverpod (Medium)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💬 If you're just starting out with Riverpod, this guide was made for you!&lt;/p&gt;




&lt;p&gt;Follow me for more Flutter + Riverpod tips! 💙&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>riverpod</category>
      <category>statemanagement</category>
      <category>mobile</category>
    </item>
  </channel>
</rss>
