<?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: MD Sarfaraj</title>
    <description>The latest articles on DEV Community by MD Sarfaraj (@yourmdsarfaraj).</description>
    <link>https://dev.to/yourmdsarfaraj</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%2F849223%2Fb6a87025-b444-4a68-a6ae-351814225304.jpeg</url>
      <title>DEV Community: MD Sarfaraj</title>
      <link>https://dev.to/yourmdsarfaraj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yourmdsarfaraj"/>
    <language>en</language>
    <item>
      <title>Why Every Small Shop Needs an Udhar Khata App in 2026</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Tue, 21 Apr 2026 14:49:45 +0000</pubDate>
      <link>https://dev.to/yourmdsarfaraj/why-every-small-shop-needs-an-udhar-khata-app-in-2026-4b1f</link>
      <guid>https://dev.to/yourmdsarfaraj/why-every-small-shop-needs-an-udhar-khata-app-in-2026-4b1f</guid>
      <description>&lt;p&gt;In many parts of India, especially in small towns and local markets, the concept of &lt;em&gt;udhar&lt;/em&gt; (credit) is still very common. Shopkeepers often give products to customers on credit and maintain records in a notebook, commonly known as a &lt;em&gt;khata&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But as businesses grow, managing credit manually becomes difficult, error-prone, and time-consuming. This is where an &lt;strong&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.rupaya.khata&amp;amp;hl=en_IN" rel="noopener noreferrer"&gt;udhar khata app&lt;/a&gt;&lt;/strong&gt; can make a big difference.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem with Traditional Khata Systems
&lt;/h2&gt;

&lt;p&gt;Most small businesses still rely on pen and paper to track credit transactions. While this method works initially, it comes with several challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data loss risk&lt;/strong&gt; – Notebooks can be lost or damaged&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculation errors&lt;/strong&gt; – Manual calculations often lead to mistakes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No reminders&lt;/strong&gt; – Shopkeepers forget to follow up on payments&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lack of insights&lt;/strong&gt; – No way to track who owes the most or for how long&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As the number of customers increases, managing all this becomes overwhelming.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is an Udhar Khata App?
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.rupaya.khata&amp;amp;hl=en_IN" rel="noopener noreferrer"&gt;udhar khata app&lt;/a&gt;&lt;/strong&gt; is a digital solution that helps shopkeepers record, manage, and track credit transactions with customers.&lt;/p&gt;

&lt;p&gt;Instead of writing in a notebook, everything is stored securely on a mobile device.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features That Make a Difference
&lt;/h2&gt;

&lt;p&gt;A good udhar khata app typically includes:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Easy Credit Entry
&lt;/h3&gt;

&lt;p&gt;Add transactions in seconds without complicated steps.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Customer Management
&lt;/h3&gt;

&lt;p&gt;Maintain a list of customers along with their credit history.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Real-Time Balance Tracking
&lt;/h3&gt;

&lt;p&gt;Instantly see how much each customer owes.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Payment Reminders
&lt;/h3&gt;

&lt;p&gt;Send reminders to customers via SMS or WhatsApp.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Secure Data Storage
&lt;/h3&gt;

&lt;p&gt;No more fear of losing records due to misplaced notebooks.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Shopkeepers Are Switching to Digital Khata
&lt;/h2&gt;

&lt;p&gt;The shift from manual to digital is happening faster than ever. Here’s why:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Saves time and effort&lt;/li&gt;
&lt;li&gt;Reduces human errors&lt;/li&gt;
&lt;li&gt;Improves cash flow management&lt;/li&gt;
&lt;li&gt;Builds transparency with customers&lt;/li&gt;
&lt;li&gt;Helps in scaling the business&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even small kirana stores are now adopting digital tools to stay competitive.&lt;/p&gt;




&lt;h2&gt;
  
  
  Is It Difficult to Use?
&lt;/h2&gt;

&lt;p&gt;One common concern is whether such apps are easy to use.&lt;/p&gt;

&lt;p&gt;The reality is that most modern udhar khata apps are designed for simplicity. If someone can use WhatsApp, they can use these apps without any technical knowledge.&lt;/p&gt;




&lt;h2&gt;
  
  
  Things to Consider Before Choosing an Udhar Khata App
&lt;/h2&gt;

&lt;p&gt;Before selecting an app, it’s important to check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is it easy to use?&lt;/li&gt;
&lt;li&gt;Does it support your local language?&lt;/li&gt;
&lt;li&gt;Are reminders available?&lt;/li&gt;
&lt;li&gt;Is the data secure?&lt;/li&gt;
&lt;li&gt;Does it work offline or with low internet?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Choosing the right app can make a significant difference in daily operations.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Managing credit is an essential part of many small businesses. While the traditional khata system has worked for years, it is no longer efficient in today’s fast-paced world.&lt;/p&gt;

&lt;p&gt;A reliable &lt;strong&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.rupaya.khata&amp;amp;hl=en_IN" rel="noopener noreferrer"&gt;udhar khata app&lt;/a&gt;&lt;/strong&gt; can simplify operations, reduce stress, and help shopkeepers focus more on growing their business rather than managing records.&lt;/p&gt;

&lt;p&gt;If you’re still using a notebook for credit tracking, it might be the right time to explore digital alternatives.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have you tried using a digital khata system? Share your experience in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>marketing</category>
      <category>discuss</category>
      <category>startup</category>
    </item>
    <item>
      <title>Why Small Shopkeepers Still Prefer Notebooks Over Apps (And What We Can Learn From It)</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Mon, 20 Apr 2026 18:56:39 +0000</pubDate>
      <link>https://dev.to/yourmdsarfaraj/building-rupaya-khata-a-simple-credit-ledger-for-small-shopkeepers-20da</link>
      <guid>https://dev.to/yourmdsarfaraj/building-rupaya-khata-a-simple-credit-ledger-for-small-shopkeepers-20da</guid>
      <description>&lt;p&gt;In India, millions of small shopkeepers still rely on traditional notebooks (commonly called &lt;em&gt;khata&lt;/em&gt;) to manage their daily credit transactions. Despite the rise of digital solutions, adoption of such apps remains surprisingly low.&lt;/p&gt;

&lt;p&gt;Recently, I came across a product called &lt;strong&gt;&lt;a href="https://www.rupayakhata.com/" rel="noopener noreferrer"&gt;Rupaya Khata&lt;/a&gt;&lt;/strong&gt;, a digital credit ledger designed specifically for small businesses. It aims to replace the traditional notebook with a simple mobile app. While the idea is promising, it also highlights some interesting realities about user behavior and product design.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem Digital Apps Are Trying to Solve
&lt;/h2&gt;

&lt;p&gt;Traditional khata systems come with clear limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Risk of losing records
&lt;/li&gt;
&lt;li&gt;No backup or recovery
&lt;/li&gt;
&lt;li&gt;Manual calculations leading to errors
&lt;/li&gt;
&lt;li&gt;No visibility into overall business performance
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Digital apps like &lt;a href="https://www.rupayakhata.com/" rel="noopener noreferrer"&gt;Rupaya Khata&lt;/a&gt; attempt to solve these problems by offering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy credit and payment tracking
&lt;/li&gt;
&lt;li&gt;Automated calculations
&lt;/li&gt;
&lt;li&gt;Data backup
&lt;/li&gt;
&lt;li&gt;Basic business insights
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On paper, it seems like an obvious upgrade.&lt;/p&gt;




&lt;h2&gt;
  
  
  Then Why Is Adoption Still Low?
&lt;/h2&gt;

&lt;p&gt;Even with clear benefits, many shopkeepers hesitate to switch. A few common patterns emerge:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Habit Is Hard to Break
&lt;/h3&gt;

&lt;p&gt;For many shopkeepers, writing in a notebook is second nature. It’s quick, familiar, and requires no learning curve.&lt;/p&gt;

&lt;p&gt;Switching to an app—even a simple one—introduces friction.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Speed Matters More Than Features
&lt;/h3&gt;

&lt;p&gt;In a busy shop environment, every second counts.&lt;/p&gt;

&lt;p&gt;If recording a transaction in an app takes longer than writing it down, users will avoid it—regardless of how many features the app offers.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Inconsistent Data Entry
&lt;/h3&gt;

&lt;p&gt;One recurring issue is incomplete usage.&lt;/p&gt;

&lt;p&gt;Many users start using digital apps but stop entering transactions regularly. Once the data becomes incomplete, the app loses its value.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Trust and Comfort
&lt;/h3&gt;

&lt;p&gt;Physical notebooks feel tangible and reliable. Some users are still skeptical about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data security
&lt;/li&gt;
&lt;li&gt;Losing access to their information
&lt;/li&gt;
&lt;li&gt;Dependence on mobile devices
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Key Takeaways for Builders
&lt;/h2&gt;

&lt;p&gt;Products like &lt;a href="https://www.rupayakhata.com/" rel="noopener noreferrer"&gt;Rupaya Khata&lt;/a&gt; highlight an important lesson:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Solving a problem is not enough. The solution must fit seamlessly into existing user behavior.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some important takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prioritize speed over additional features
&lt;/li&gt;
&lt;li&gt;Reduce friction in daily usage
&lt;/li&gt;
&lt;li&gt;Design for low-tech users
&lt;/li&gt;
&lt;li&gt;Focus on habit formation, not just onboarding
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Could Improve Adoption?
&lt;/h2&gt;

&lt;p&gt;A few ideas that could make such apps more practical:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One-tap or ultra-fast transaction entry
&lt;/li&gt;
&lt;li&gt;Offline-first experience
&lt;/li&gt;
&lt;li&gt;Regional language support
&lt;/li&gt;
&lt;li&gt;Integration with platforms like WhatsApp for reminders
&lt;/li&gt;
&lt;li&gt;Gentle nudges to encourage daily usage
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Digital transformation in small businesses is not just a technology challenge—it’s a behavior challenge.&lt;/p&gt;

&lt;p&gt;Apps like &lt;a href="https://www.rupayakhata.com/" rel="noopener noreferrer"&gt;Rupaya Khata&lt;/a&gt; are a step in the right direction, but their success will depend on how well they align with the everyday habits of their users.&lt;/p&gt;

&lt;p&gt;For anyone building in this space, the real question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can your product become easier than pen and paper?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;p&gt;Have you observed similar challenges in products targeting non-tech users?&lt;br&gt;&lt;br&gt;
What strategies have worked in improving adoption?&lt;/p&gt;

&lt;p&gt;Would love to hear different perspectives.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>discuss</category>
      <category>marketing</category>
      <category>development</category>
    </item>
    <item>
      <title>Flutter Chopper Tutorial: API Calls Made Easy</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Mon, 15 Sep 2025 14:19:40 +0000</pubDate>
      <link>https://dev.to/yourmdsarfaraj/flutter-chopper-tutorial-api-calls-made-easy-35k7</link>
      <guid>https://dev.to/yourmdsarfaraj/flutter-chopper-tutorial-api-calls-made-easy-35k7</guid>
      <description>&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/vTYBzwQx57U"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>coding</category>
      <category>development</category>
    </item>
    <item>
      <title>Let's connect on LinkedIn</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Fri, 02 Jun 2023 06:01:13 +0000</pubDate>
      <link>https://dev.to/yourmdsarfaraj/lets-connect-on-linkedin-371i</link>
      <guid>https://dev.to/yourmdsarfaraj/lets-connect-on-linkedin-371i</guid>
      <description>&lt;p&gt;Hello everyone,&lt;/p&gt;

&lt;p&gt;Let's connect on LinkedIn and embark on this exciting journey together. Feel free to visit my profile and hit that "Connect" button. I look forward to connecting with like-minded professionals, sharing ideas, and exploring ways we can collaborate and support each other's professional growth.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>linkedin</category>
      <category>connection</category>
    </item>
    <item>
      <title>Developers' Challenges and Advice: Let's Discuss!</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Mon, 15 May 2023 14:02:25 +0000</pubDate>
      <link>https://dev.to/yourmdsarfaraj/developers-challenges-and-advice-lets-discuss-3jc9</link>
      <guid>https://dev.to/yourmdsarfaraj/developers-challenges-and-advice-lets-discuss-3jc9</guid>
      <description>&lt;p&gt;Hey fellow developers!&lt;/p&gt;

&lt;p&gt;As a vibrant and supportive community of developers, we understand that we all face unique challenges and come across valuable insights throughout our coding journeys. That's why I wanted to create this discussion post where we can openly share our experiences, seek advice, and learn from one another.&lt;/p&gt;

&lt;p&gt;So, here are a few prompts to kickstart the conversation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What are some of the biggest challenges you have faced as a developer? It could be related to learning new technologies, managing complex projects, or overcoming specific hurdles. How did you tackle these challenges, and what lessons did you learn along the way?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have you encountered any roadblocks in collaborating with teams or working on open-source projects? How did you navigate those challenges and foster effective teamwork or community engagement?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When it comes to staying up-to-date with the ever-evolving tech landscape, what strategies or resources have you found most helpful? How do you balance learning new technologies while also meeting project deadlines?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What advice do you have for developers who are just starting their coding journey? Are there any specific resources, learning paths, or mindsets you recommend for beginners to accelerate their growth?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How do you manage and maintain work-life balance as a developer? What strategies or practices have helped you avoid burnout and maintain your productivity and motivation?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to share your thoughts, experiences, and any other challenges or advice that you believe would benefit the community. Remember, we're all here to learn from each other and support one another on our coding adventures.&lt;/p&gt;

&lt;p&gt;Looking forward to hearing your insights and engaging in a meaningful discussion!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>developer</category>
      <category>career</category>
      <category>coding</category>
    </item>
    <item>
      <title>Flutter vs React Native: The Ultimate Battle for Cross-Platform Mobile Development Supremacy</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Tue, 11 Apr 2023 09:34:44 +0000</pubDate>
      <link>https://dev.to/playfulprogramming/flutter-vs-react-native-the-ultimate-battle-for-cross-platform-mobile-development-supremacy-5d6j</link>
      <guid>https://dev.to/playfulprogramming/flutter-vs-react-native-the-ultimate-battle-for-cross-platform-mobile-development-supremacy-5d6j</guid>
      <description>&lt;p&gt;Mobile app development has seen rapid growth in recent years, as cross-platform development solutions have become more popular. There are two solutions that have proven popular among developers: Flutter and React Native. Both platforms allow developers to build native apps for iOS and Android using a single codebase. However, there are significant differences between these two frameworks that should be taken into account by developers. Let's get started without further ado,&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Flutter?
&lt;/h2&gt;

&lt;p&gt;Flutter is an open-source mobile SDK (Software Development Kit) created by Google to build native applications for android, iOS, web, desktop, and embedded devices from a single codebase.&lt;/p&gt;

&lt;p&gt;Flutter was announced at the Dart Developer Summit in 2015. At first, it was called “Sky”. Flutter alpha version (0.0.6) was released in 2017. Google launched the second preview of Flutter in September 2018.&lt;/p&gt;

&lt;p&gt;Google announced the first stable version on 5th December 2018. Before Flutter was released as a stable version, it gained some popularity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features Of Flutter
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hot Reload&lt;/strong&gt;&lt;br&gt;
Flutter's Hot Reload feature allows developers to see code changes in real-time without restarting the app. In this way, the development process is sped up and code can be tested and iterated more quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Widgets&lt;/strong&gt;&lt;br&gt;
A widget is the building block of a user interface in Flutter. Widgets are reusable UI elements that can be combined to create complex layouts, making it easy to build beautiful and responsive apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-platform development&lt;/strong&gt; &lt;br&gt;
Flutter allows developers to build apps for iOS and Android using a single codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Native performance&lt;/strong&gt; &lt;br&gt;
Flutter compiles to native code, resulting in fast and responsive apps with a native feel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Material Design and Cupertino widgets&lt;/strong&gt; &lt;br&gt;
Flutter provides prebuilt Material Design and Cupertino widgets that make creating beautiful and intuitive user interfaces easy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fast development&lt;/strong&gt; &lt;br&gt;
The reactive programming model and Hot Reload feature allow developers to make changes quickly and see the results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open-source&lt;/strong&gt; &lt;br&gt;
Flutter is an open-source framework supported by a large developer community, which provides access to resources and support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customizable widgets&lt;/strong&gt;&lt;br&gt;
Flutter widgets can be easily customized and extended to meet specific app requirements, so it's easy to create unique and personalized user interfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Support for multiple languages&lt;/strong&gt;&lt;br&gt;
Flutter supports multiple programming languages, including Dart, Kotlin, and Swift, making it easier for developers to get started with the framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing and debugging support&lt;/strong&gt;&lt;br&gt;
Flutter comes with built-in testing and debugging features, so problems can be detected and fixed sooner.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is React Native?
&lt;/h2&gt;

&lt;p&gt;React Native is an open-source mobile application development framework created by Facebook that allows developers to build native applications for Android, iOS, and web using a single codebase.&lt;/p&gt;

&lt;p&gt;React Native was first announced in 2015 and was released to the public in March 2015. It gained popularity quickly and is now one of the most widely used mobile development frameworks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features of React Native
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cross-platform development&lt;/strong&gt;&lt;br&gt;
React Native allows developers to build cross-platform mobile apps using a single codebase including Android and iOS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Native performance&lt;/strong&gt;&lt;br&gt;
React Native compiles to native code using native components, resulting in quick and responsive apps that offer users a native-like experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hot Reloading&lt;/strong&gt;&lt;br&gt;
The Hot Reloading feature of React Native allows developers to observe changes to the code in real-time without having to restart the app. This speeds up the development process and makes code testing and iteration easier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;&lt;br&gt;
React Native is extremely adaptable and can be used for a variety of app kinds, including enterprise, e-commerce, social, and gaming apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Large Community&lt;/strong&gt;&lt;br&gt;
React Native has a huge and active developer community that offers a plethora of tools, support, and third-party libraries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy to Learn&lt;/strong&gt;&lt;br&gt;
React Native is developed on top of React, a popular web development framework. This makes learning and transitioning to mobile development easier for developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code Reusability&lt;/strong&gt;&lt;br&gt;
React Native enables developers to reuse a large percentage of their codebase across several platforms, lowering development costs and time-to-market.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Component-based Architecture&lt;/strong&gt;&lt;br&gt;
The component-based architecture of React Native enables developers to easily build complex UIs by splitting the app down into reusable components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance Optimization&lt;/strong&gt;&lt;br&gt;
React Native includes various speed optimisation techniques, such as lazy loading, code splitting, and asynchronous rendering, to ensure that apps run quickly and efficiently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third-Party Library Support&lt;/strong&gt;&lt;br&gt;
React Native has comprehensive support for third-party libraries, allowing access to a large range of pre-built components and functions, allowing for faster and easier app development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key difference between Flutter vs React Native
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concept&lt;/th&gt;
&lt;th&gt;Flutter&lt;/th&gt;
&lt;th&gt;React Native&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Developed by&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;Facebook&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Release&lt;/td&gt;
&lt;td&gt;May 2017&lt;/td&gt;
&lt;td&gt;June 2015&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Programming Language&lt;/td&gt;
&lt;td&gt;Dart&lt;/td&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Architecture&lt;/td&gt;
&lt;td&gt;Business Logic Component (BLoC)&lt;/td&gt;
&lt;td&gt;Flux and Redux&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Interface&lt;/td&gt;
&lt;td&gt;Custom widgets&lt;/td&gt;
&lt;td&gt;Native UI controllers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Documentation&lt;/td&gt;
&lt;td&gt;Good, organized, and informative&lt;/td&gt;
&lt;td&gt;User-friendly but disorganized&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;Faster due to close-to-machine code&lt;/td&gt;
&lt;td&gt;Slower than Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testing&lt;/td&gt;
&lt;td&gt;Rich set of testing features&lt;/td&gt;
&lt;td&gt;Uses third-party testing tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Community Support&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;Better than Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hot Reload&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Popularity&lt;/td&gt;
&lt;td&gt;152k stars on GitHub (April 2023)&lt;/td&gt;
&lt;td&gt;109k stars on GitHub (April 2023)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latest Version&lt;/td&gt;
&lt;td&gt;Flutter-v3.7.10&lt;/td&gt;
&lt;td&gt;React Native-v0.71.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Industry Adoption&lt;/td&gt;
&lt;td&gt;Google Ads, Google Assistance, Google Pay, BMW, Alibaba, eBay, Square, Nubank, Dream 11, Zerodha, Toyota, Hamilton, ByteDance, etc&lt;/td&gt;
&lt;td&gt;Facebook, Messenger, Instagram, WhatsApp, Bloomberg, Walmart, Uber, Airbnb, Microsoft, Discord, Gyroscope, Skype, Tesla, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IDE Support&lt;/td&gt;
&lt;td&gt;Flutter has a dedicated IDE called Android Studio, as well as support for other popular IDEs such as Visual Studio Code and IntelliJ IDEA&lt;/td&gt;
&lt;td&gt;React Native has support for popular IDEs such as Visual Studio Code and Atom, as well as its own web-based IDE called Expo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learning Curve&lt;/td&gt;
&lt;td&gt;Flutter has a steeper learning curve due to its unique programming language and architecture, but it may be easier for developers who are familiar with object-oriented programming&lt;/td&gt;
&lt;td&gt;React Native has a shallower learning curve since it uses JavaScript, which is a popular language for web development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App Size&lt;/td&gt;
&lt;td&gt;Flutter app size is larger than React Native app size due to its own widgets and libraries which are required to be bundled with the app&lt;/td&gt;
&lt;td&gt;React Native app size is smaller compared to Flutter app size as it uses native components for building the UI which reduces the app size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;State Management&lt;/td&gt;
&lt;td&gt;Flutter has its ,many state management solutions such as BLoC, Provider, GetX, and Riverpod which provides more control over the state of the application&lt;/td&gt;
&lt;td&gt;React Native uses third-party libraries such as Redux or MobX for state management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Compilation&lt;/td&gt;
&lt;td&gt;Flutter uses ahead-of-time (AOT) compilation for iOS and just-in-time (JIT) compilation for Android which allows it to provide faster start-up times&lt;/td&gt;
&lt;td&gt;React Native uses JIT compilation for both Android and iOS which can lead to longer start-up times&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App Development Time&lt;/td&gt;
&lt;td&gt;Flutter provides faster app development time due to its Hot Reload feature, which allows developers to see the changes made to the code in real-time&lt;/td&gt;
&lt;td&gt;React Native also provides a fast development cycle, but the changes made to the code require a re-build of the app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Platform-Specific Features&lt;/td&gt;
&lt;td&gt;Flutter provides access to platform-specific features through a plugin system, which allows developers to use native functionality such as camera and location services&lt;/td&gt;
&lt;td&gt;React Native also provides access to platform-specific features, but it may require additional configuration and setup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Popularity Among Developers&lt;/td&gt;
&lt;td&gt;Flutter is the market's leading cross-platform development.&lt;/td&gt;
&lt;td&gt;React Native is the second most popular cross-platform development framework.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;Both Flutter and React Native have advantages and disadvantages, and the choice between them is influenced by factors such as project needs, money, and development time.&lt;/p&gt;

&lt;p&gt;Flutter, from the viewpoint of a developer, provides a more customised UI, improved performance, and shorter development time due to its Hot Reload functionality. However, due to its unique programming language and architecture, it has a steeper learning curve. React Native, on the other hand, has a reduced learning curve, a smaller app size, and a wider community support, although it may be slower in performance and require more configuration for platform-specific functionality.&lt;/p&gt;

&lt;p&gt;A business owner's decision between Flutter and React Native will be based on their individual demands and ambitions. Flutter may be a better choice for organisations who prioritise app speed and have a larger budget, whereas React Native may be a better choice for businesses that require faster development time and a smaller budget.&lt;/p&gt;

&lt;p&gt;In conclusion, both Flutter and React Native are powerful and popular frameworks for mobile app development, and businesses and developers should carefully evaluate the pros and cons of each before making a decision. Ultimately, the choice between them depends on the specific requirements and goals of the project, and businesses and developers should choose the framework that best suits their needs.&lt;/p&gt;

&lt;p&gt;Thanks for reading, Love form Sarfaraj ❤️❤️❤️&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>reactnative</category>
      <category>mobile</category>
      <category>dart</category>
    </item>
    <item>
      <title>My Journey Into Tech</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Mon, 20 Mar 2023 09:36:09 +0000</pubDate>
      <link>https://dev.to/playfulprogramming/my-journey-into-tech-45k</link>
      <guid>https://dev.to/playfulprogramming/my-journey-into-tech-45k</guid>
      <description>&lt;p&gt;Reading the inspiring stories of other developers prompted me to share my journey. Everyone has a unique story worth sharing, and I'm excited to tell mine. So without further delay, let's get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  Early Life
&lt;/h2&gt;

&lt;p&gt;I was born on January 1st, 1999, on New Year's Day in Bihar, India. I always enjoy telling people about my birthday because it's a memorable date, and I grew up with everyone in the world being able to celebrate my birthday. &lt;/p&gt;

&lt;p&gt;I was born into a low-income family. Due to our financial situation, I had to attend the local government school in my village. I completed my 8th standard there and then moved on to high school, where I finished my 10th with a first division.&lt;/p&gt;

&lt;p&gt;I pursued the science with mathematics stream and began preparing for the 12th. I had to ride my bicycle 28 kilometres daily to attend coaching classes since they were far from my home. However, when I was in the 12th grade, I discovered that I had a dust and sun allergy, which made it incredibly challenging to keep up with my +2 preparation and commute. Nevertheless, I persevered and passed the exam with flying colours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moving to Kolkata
&lt;/h2&gt;

&lt;p&gt;After completing my 12th, I was still figuring out what to do next. Eventually, I decided to learn computer skills and prepare for a government job. Most people will be aware that government jobs are more prevalent in Bihar.&lt;/p&gt;

&lt;p&gt;I went to Howrah, West Bengal, where my father worked in a Jute Mill, and my father's company provided a small 10x10 feet room. Four people were already living in the room, and I became the fifth person. The living quarters the company provides for employees are in a small slum area, and the rooms are prone to flooding with contaminated water during the rainy season. Moreover, no private toilet facilities are available, and workers must use the company's public toilets.&lt;/p&gt;

&lt;p&gt;After witnessing the challenging living conditions that my father and his colleagues endure, I have gained a deeper appreciation for his sacrifices to provide for our family.&lt;/p&gt;

&lt;h2&gt;
  
  
  Admission To Ramakrishna Mission Shilpamandira College
&lt;/h2&gt;

&lt;p&gt;My father asked one of his colleagues for an opinion on the best place to study computer science in Kolkata with less budget. The colleague recommended Ramakrishna Mission Shilpamandira Computer Centre and ITI college, and we visited to explore our options.&lt;/p&gt;

&lt;p&gt;At the college, a computer science teacher suggested that I enrol in the Certificate in Computer Application (CCA) course, a six-month program that would lay the foundation for my future studies and it will can help in government job preparation as well.&lt;/p&gt;

&lt;p&gt;However, I faced several challenges during the course. I had previously attended a government college where the medium of instruction was Hindi, and I needed to familiarise myself with the technical terminology used in English. Additionally, most of my classmates and teachers spoke Bengali, which made it difficult for me to communicate effectively.&lt;/p&gt;

&lt;p&gt;I focused on improving my English skills and worked hard to interact with my classmates and understand their language. Through dedication and perseverance, I completed the CCA course. &lt;/p&gt;

&lt;p&gt;After completing the CCA (Certificate In Computer Application) course, I discovered my passion for software engineering. I decided to pursue it further by enrolling in the Certificate in Software Engineering (CSE) program. The two years I spent studying engineering passed by quickly, thanks to the exceptional quality of teaching and the positive college culture. &lt;/p&gt;

&lt;p&gt;I often visited the Vivekananda temple near the college, and sitting by the river after my visits always made me feel good. The temple held a special place in my heart, and I found solace in its peaceful surroundings. It was a great escape from the hustle and bustle of daily life, and I often went there to reflect and recharge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Landing into my first Job
&lt;/h2&gt;

&lt;p&gt;In my final year of engineering, a startup company came to my college to recruit two PHP developers. I was interested in the opportunity because my family faced financial difficulties. After the interview, I received the news that I had got for the position. When I heard this news, it made me emotional. &lt;/p&gt;

&lt;p&gt;I shared the exciting news with my class teacher, but he reminded me I still needed to finish my semester. He suggested attending evening classes so that I could work during the day. Thankfully, my employer understood and allowed me to leave work an hour early to attend my classes. &lt;/p&gt;

&lt;p&gt;After a few days, I got assigned a project based on SocialEngine CMS. I need to customise the platform and make some custom plugins. SocialEngine uses a PHP ZendFramework, but when I first saw the code, it differed from PHP ZendFramework. And there were no more resources on Google where I could search and get more ideas for SocialEngine coding. Just one day, my manager showed me the code structure of SocialEngine and some basic coding stuff. He has other work to manage, so he could only give me a little time. So I used to work late at night in the office to ask doubts from him . Asking doubts from my manager and reading the source code, I learned SocialEngine after that, built many plugins, and completed the project. &lt;/p&gt;

&lt;p&gt;The client I'm working for is in the UK. When I first spoke with him, I needed help understanding most of his words because his accent was very different from what I was used to. Despite my difficulty, he was incredibly cooperative and patient, and he even started speaking more slowly so that I could comprehend him better. Eventually, I got used to his accent and became more comfortable talking with him.&lt;/p&gt;

&lt;p&gt;As time went on, our working relationship flourished. Not only did I enjoy collaborating with him, but I also appreciated his calm and professional manner. However, when I decided to leave my first company, I never expected what would happen next - he offered me a job in his company with better pay and a more prominent role! It was an excellent opportunity that I gratefully accepted.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Patience and understanding can pave the way for success and new possibilities in challenging situations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Moving to Hyderabad
&lt;/h2&gt;

&lt;p&gt;After spending over a year and a half working for a UK-based company, I left. As no new projects were on the horizon and we had completed all existing projects, I felt unchallenged and unfulfilled at home. As a result, I began actively seeking out onsite job opportunities. &lt;/p&gt;

&lt;p&gt;Fortunately, I received an offer from ABSYZ Inc and relocated to Hyderabad in October 2022. The move brought new challenges, such as meeting new people from different parts of the country and adjusting to life in a new city. &lt;/p&gt;

&lt;p&gt;In my previous two companies, I worked in small teams. However, I work in a big group in Hyderabad, where everyone's opinions are heard and valued. It has been a great learning experience as it taught me the importance of active listening and effective communication.&lt;/p&gt;

&lt;p&gt;I have never lived alone before. I lived with my mom in my hometown, and when I moved to Kolkata, I lived with my father. But after moving to Hyderabad, I am living alone and managing everything independently. It has been a challenging experience, but it has also helped me become more independent and self-sufficient.&lt;/p&gt;

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

&lt;p&gt;As a passionate developer, I have a few dreams that I would love to achieve. First and foremost, I want to write more blogs/articles and contribute to open-source projects to become a Flutter GDE. Sharing knowledge and experience is crucial for the growth of the tech industry, and becoming a recognised expert in my field would be an outstanding achievement.&lt;/p&gt;

&lt;p&gt;Another dream of mine is to inspire more developers to write blogs and contribute to open-source projects. Collaborating and sharing ideas can build more vibrant and inclusive tech communities. I want to lead by example, encourage others to get involved, and positively impact the industry.&lt;/p&gt;

&lt;p&gt;Finally, my ultimate career goal is to work as a Team Lead. I am passionate about helping other developers grow and evolve their skills, and I find great satisfaction in providing code reviews and ensuring the highest quality of work. Leading a team would allow me to make an even more significant impact and help others achieve their goals in the tech industry. I am excited to continue pursuing these dreams and making a positive impact in the tech community.&lt;/p&gt;

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

&lt;p&gt;Life has been difficult, but challenges have helped me become stronger and more resilient. While I cannot predict the future, there will likely be more obstacles to overcome. However, facing challenges head-on is essential for personal growth and development.&lt;/p&gt;

&lt;p&gt;Throughout my journey, I have learned to embrace life's ups and downs and never give up on my dreams. I am grateful for the opportunities and experiences that have shaped me into the person I am today, and I am excited to continue learning and growing in the future.&lt;/p&gt;

&lt;p&gt;Ultimately, life is a beautiful journey full of twists and turns, and we must make the most of every moment. I am committed to facing challenges with courage and perseverance and excited to see where this journey takes me next.&lt;/p&gt;

</description>
      <category>career</category>
      <category>motivation</category>
      <category>programming</category>
    </item>
    <item>
      <title>Sharing My Flutter Portfolio Website Source Code: Empowering Developers to Build Their Own</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Sun, 12 Mar 2023 17:36:09 +0000</pubDate>
      <link>https://dev.to/yourmdsarfaraj/sharing-my-flutter-portfolio-website-source-code-empowering-developers-to-build-their-own-54h6</link>
      <guid>https://dev.to/yourmdsarfaraj/sharing-my-flutter-portfolio-website-source-code-empowering-developers-to-build-their-own-54h6</guid>
      <description>&lt;p&gt;Great news everyone! I recently developed my portfolio website in Flutter, and it has received a lot of appreciation from my peers. Therefore, I decided to make the source code available to the public, so that other people can also create their portfolio website easily in Flutter.&lt;/p&gt;

&lt;p&gt;By making the source code of my portfolio website public, I hope to help aspiring developers to learn more about Flutter and inspire them to build their own portfolio website. The code can be used as a reference or cloned to create a new project.&lt;/p&gt;

&lt;p&gt;I encourage you to take a look at my portfolio website's source code and use it as a learning resource to create your own amazing portfolio website in Flutter.&lt;/p&gt;

&lt;p&gt;Thank you for reading, and happy coding!&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="https://mdsarfaraj.com" rel="noopener noreferrer"&gt;https://mdsarfaraj.com&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/socialmad/mdsarfaraj" rel="noopener noreferrer"&gt;https://github.com/socialmad/mdsarfaraj&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Handling Asynchronous Data In Flutter - The Power Of Streams</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Sun, 12 Mar 2023 16:53:23 +0000</pubDate>
      <link>https://dev.to/playfulprogramming/handling-asynchronous-data-in-flutter-the-power-of-streams-54n6</link>
      <guid>https://dev.to/playfulprogramming/handling-asynchronous-data-in-flutter-the-power-of-streams-54n6</guid>
      <description>&lt;p&gt;Flutter is a popular open-source mobile app development framework that allows developers to create high-performance, visually appealing, and feature-rich mobile apps. The stream concept is one of the essential features of Flutter, which will enable you to handle asynchronous data. This article will explore Flutter's stream, its uses, and how it works.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Stream?
&lt;/h2&gt;

&lt;p&gt;A flutter stream is a sequence of asynchronous data that can be processed and consumed efficiently. In a stream, continuous data is delivered to an application in a continuous flow. This can handle input events, network responses, and even animations.&lt;/p&gt;

&lt;p&gt;Streams are intended to handle asynchronous data that may take an unknown amount of time to arrive, allowing the developer to handle the data as soon as it becomes available. Streams are also very efficient because they only process available data and don't waste resources waiting for data.&lt;/p&gt;

&lt;p&gt;Suppose you have a weather app that displays a list of weather updates. Instead of constantly checking for new updates, you can use a stream to listen for and display updates from a server in real-time. When a new update is received, it is sent through the stream, and your app can respond accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of Streams
&lt;/h2&gt;

&lt;p&gt;There are two types of streams in Flutter,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single Subscription Stream&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A stream that can only be listened to once. The stream is closed when the data has been consumed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Broadcast Stream&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A stream that can be listened to repeatedly. Multiple subscribers can listen to the same stream at the same time.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to work with Streams
&lt;/h2&gt;

&lt;p&gt;To work with streams in Flutter, follow the steps below for effective stream integration in your application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Import the &lt;code&gt;dart:async&lt;/code&gt; library.&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="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'dart:async'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;dart:async&lt;/code&gt; library is used in Dart and Flutter to work with asynchronous programming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a StreamController object.&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;final&lt;/span&gt; &lt;span class="n"&gt;StreamController&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_controller&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;StreamController&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Flutter, the StreamController object allows you to create, add data, and listen to streams. In this case, we're making a new StreamController to handle integers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add data to the stream.&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;_controller&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sink&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;_controller&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sink&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;_controller&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sink&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The StreamController sink property is used to add data to the stream. In this case, we're adding three integer values to the stream: 1, 2, and 3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 4&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Create a StreamSubscription object:&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;final&lt;/span&gt; &lt;span class="n"&gt;StreamSubscription&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_subscription&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_controller&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;event&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="n"&gt;event&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;The object &lt;code&gt;_subscription&lt;/code&gt; is created to listen to the data stream. The StreamController's &lt;code&gt;listen&lt;/code&gt; method registers a callback function that will be called whenever a new event is added to the stream. In this case, we're using the &lt;code&gt;print&lt;/code&gt; function to print the value of each new event to the console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Close the StreamSubscription and StreamController objects&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;_subscription&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;onDone&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;_controller&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;close&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;The StreamSubscription's &lt;code&gt;onDone&lt;/code&gt; method registers a callback function that will be called when the subscription has finished listening to the stream. In this case, we're calling the StreamController's &lt;code&gt;close&lt;/code&gt; method to close the stream and release any associated resources.&lt;/p&gt;

&lt;p&gt;Let's create a counter app with a stream,&lt;/p&gt;

&lt;p&gt;We will now develop a basic counter application using streams, incorporating the concepts we have learned thus far.&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="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'dart:async'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="n"&gt;runApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;MyApp&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyApp&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;StatelessWidget&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;MyApp&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;

 &lt;span class="c1"&gt;// This widget is the root of your application.&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="p"&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="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;MaterialApp&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;'Flutter Demo'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
     &lt;span class="nl"&gt;theme:&lt;/span&gt; &lt;span class="n"&gt;ThemeData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
       &lt;span class="nl"&gt;primarySwatch:&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="p"&gt;,&lt;/span&gt;
     &lt;span class="p"&gt;),&lt;/span&gt;
     &lt;span class="nl"&gt;home:&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;MyHomePage&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;'Flutter Demo Home Page'&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="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyHomePage&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;StatefulWidget&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;MyHomePage&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;required&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;

 &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

 &lt;span class="nd"&gt;@override&lt;/span&gt;
 &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;MyHomePage&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;createState&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_MyHomePageState&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&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="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;MyHomePage&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;StreamController&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_streamController&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;StreamController&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;();&lt;/span&gt;

 &lt;span class="n"&gt;Stream&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;get&lt;/span&gt; &lt;span class="n"&gt;counterStream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;_streamController&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

 &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;_counter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

 &lt;span class="nd"&gt;@override&lt;/span&gt;
 &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;dispose&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="n"&gt;_streamController&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;close&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
   &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;dispose&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;

 &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;_incrementCounter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="n"&gt;_counter&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="n"&gt;_streamController&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sink&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_counter&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
 &lt;span class="p"&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="p"&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="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;Scaffold&lt;/span&gt;&lt;span class="p"&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="p"&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="p"&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="p"&gt;),&lt;/span&gt;
     &lt;span class="p"&gt;),&lt;/span&gt;
     &lt;span class="nl"&gt;body:&lt;/span&gt; &lt;span class="n"&gt;Center&lt;/span&gt;&lt;span class="p"&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="p"&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;center&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
           &lt;span class="nl"&gt;children:&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Widget&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;[&lt;/span&gt;
             &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
               &lt;span class="s"&gt;'You have pushed the button this many times:'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
             &lt;span class="p"&gt;),&lt;/span&gt;
             &lt;span class="n"&gt;StreamBuilder&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;
               &lt;span class="nl"&gt;stream:&lt;/span&gt; &lt;span class="n"&gt;counterStream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
               &lt;span class="nl"&gt;initialData:&lt;/span&gt; &lt;span class="n"&gt;_counter&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;BuildContext&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AsyncSnapshot&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;snapshot&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;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                   &lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="si"&gt;${snapshot.data}&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="nl"&gt;style:&lt;/span&gt; &lt;span class="n"&gt;Theme&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;of&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="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;textTheme&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;headlineMedium&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;span class="p"&gt;),&lt;/span&gt;
     &lt;span class="nl"&gt;floatingActionButton:&lt;/span&gt; &lt;span class="n"&gt;FloatingActionButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
       &lt;span class="nl"&gt;onPressed:&lt;/span&gt; &lt;span class="n"&gt;_incrementCounter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="nl"&gt;tooltip:&lt;/span&gt; &lt;span class="s"&gt;'Increment'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="nl"&gt;child:&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="n"&gt;Icon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Icons&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
     &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;// This trailing comma makes auto-formatting nicer for build methods.&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;We used a StreamBuilder widget to create a user interface that updates based on a data stream. A stream is a sequence of asynchronous events that can be observed, and the StreamBuilder widget listens to this stream and updates the user interface whenever a new event is received.&lt;/p&gt;

&lt;p&gt;To use a StreamBuilder widget, you provide it with a stream and a builder function. The builder function takes two arguments: a BuildContext for building the user interface and an AsyncSnapshot containing the most recent data emitted by the stream.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use cases of Stream
&lt;/h2&gt;

&lt;p&gt;In Flutter, streams are versatile tools that can be used in many ways. Here are some examples,&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network Requests&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A stream can receive data from a server in real-time and process it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Animation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Streams can update the animation's state as it plays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Input&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Streams can listen to events in text fields and buttons and update the app's state accordingly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;State Management&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Streams can be used to manage the app state. You can create a stream that emits events when the state changes and use it to update the UI.&lt;/p&gt;

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

&lt;p&gt;Asynchronous data handling is one of the most important aspects of Flutter development. They are efficient, user-friendly, and can be used in various contexts, such as network requests, animations, and user input. A solid understanding of streams is essential for any Flutter developer, and we hope this article has provided you with an excellent introduction to this vital concept.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>mobile</category>
    </item>
    <item>
      <title>My journey from PHP to Flutter Developer.</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Mon, 13 Feb 2023 06:22:08 +0000</pubDate>
      <link>https://dev.to/playfulprogramming/my-journey-from-php-to-flutter-developer-1jag</link>
      <guid>https://dev.to/playfulprogramming/my-journey-from-php-to-flutter-developer-1jag</guid>
      <description>&lt;p&gt;Hello guys, In this article, I will be sharing my journey of transitioning from a PHP Developer to a Flutter Developer. So, without further ado, let's dive in,&lt;/p&gt;

&lt;p&gt;I began my career in August, 2019 as a PHP Developer, I secured my first job as a PHP Developer. My responsibilities included working with PHP CMS and its frameworks, such as SocialEngine, Laravel, and Codeigniter, developing REST APIs, and managing servers. I spent over a year in this role, honing my skills as a backend developer and constantly learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Switching to Flutter: The Backstory
&lt;/h2&gt;

&lt;p&gt;One day, my manager scheduled a meeting with all the developers. He told us they were developing a hybrid app with Cordova, but it wasn't meeting our requirements as expected, so he planned to switch technologies and build the app natively in Android and iOS. After that, he asked if you guys had any suggestions.&lt;/p&gt;

&lt;p&gt;Somewhere I read that Flutter was developed in 2018 and it was better than other cross-platform app development tools. After that, I suggested we could develop cross-platform applications with Flutter, and it's developed by Google and it is booming in the market, so moving into the native app will be more expensive and time consuming, and it would be best if we went ahead with Flutter. &lt;/p&gt;

&lt;p&gt;My manager then said okay, but nobody in our team knows Flutter, and we have already hired an iOS developer. I expressed my eagerness to learn Flutter. My manager told me I already had a lot of work with PHP. But I expressed my interest in learning Flutter and told him I was confident that we would make a great app with it. Despite this, my manager told me that I still needed to handle my PHP work, and there wouldn't be any extra pay for it. Nevertheless, I agreed to take on this challenge.&lt;/p&gt;

&lt;p&gt;Then, my new colleague who was an iOS developer and I started to learn Flutter. Our manager provided us with a udemy Flutter course of Dr. Angela Yu, which turned out to be an amazing experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges
&lt;/h2&gt;

&lt;p&gt;My transition to becoming a Flutter developer was initially challenging as I had to balance learning the new framework while still fulfilling my responsibilities as a PHP developer. The first month was demanding, but I persevered. One of my biggest obstacles was understanding asynchronous programming, as well as getting familiar with the Flutter syntax and design. I also faced challenges when it came to managing state. However, I was determined to overcome these obstacles and I dedicated extra time and effort to learning, seeking out resources, and reaching out to more experienced Flutter developers for guidance. My persistence paid off as I was able to gain a deeper understanding of these concepts and feel more confident in my ability to work with Flutter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey of Learning
&lt;/h2&gt;

&lt;p&gt;My journey of learning Flutter was a combination of various techniques that helped me to make steady progress. As a web developer, I leveraged my past experience to learn the basics of Flutter quickly. To further deepen my knowledge, I reviewed other developers' code on GitHub, watched educational videos on YouTube, and reached out to Flutter experts on LinkedIn for advice. Talking to my colleagues and discussing problems together also helped me find solutions and grow my understanding.&lt;/p&gt;

&lt;p&gt;In addition to these resources, I actively participated in the Flutter community online. This provided me with the opportunity to network with other developers, exchange ideas and learn from their experiences. To apply what I learned, I worked on personal projects, as well as following tutorials and taking online courses. &lt;/p&gt;

&lt;p&gt;Maintaining a positive and growth mindset was key to my success. I saw challenges as opportunities to learn and grow, and having a strong support system, whether it be a mentor, peer group or online community, helped to keep me motivated. Overall, the journey of learning Flutter was a rewarding and exciting one, and I am eager to continue exploring its capabilities and contributing to its growth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Of Flutter
&lt;/h2&gt;

&lt;p&gt;Flutter is a rapidly growing, open-source framework for developing mobile, web, and desktop applications. With its easy-to-learn and expressive syntax, Flutter is quickly gaining popularity among developers worldwide. The future of Flutter looks bright as it continues to evolve and improve, offering a wider range of features and capabilities for developers. In the near future, we can expect Flutter to further establish itself as a go-to choice for cross-platform app development, with a growing community of developers and companies contributing to its growth. The ability to create beautiful, high-performing apps with a single codebase has already made Flutter a popular choice for app development, and this trend is expected to continue. With Google's continued investment in Flutter, it is well positioned to become the dominant platform for app development in the coming years.&lt;/p&gt;

&lt;p&gt;Flutter has become a top choice for top companies worldwide, and the demand for skilled Flutter developers remains strong in the current job market. Companies are in pursuit of experienced Flutter developers to join their teams. It is clear that Flutter has a bright future ahead of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flutter Resources
&lt;/h2&gt;

&lt;p&gt;If you are interested in learning Flutter, there are many resources that can help you learn and improve your skills. Here are some of the best options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Official Flutter documentation: A great starting point to understand the basics and framework architecture.&lt;/li&gt;
&lt;li&gt;Online courses: Take a comprehensive course on platforms like Udemy or Coursera to learn interactively.&lt;/li&gt;
&lt;li&gt;YouTube tutorials: Watch Flutter tutorials by skilled developers to learn new concepts and see practical examples.&lt;/li&gt;
&lt;li&gt;Flutter community: Connect with other Flutter developers, ask questions and learn from others through online forums and communities.&lt;/li&gt;
&lt;li&gt;GitHub: Explore Flutter projects on GitHub to see how other developers build and structure their apps.&lt;/li&gt;
&lt;li&gt;Flutter Weekly newsletter: Keep up-to-date with the latest developments in the Flutter community.&lt;/li&gt;
&lt;li&gt;Books and e-books: Read comprehensive books and e-books on Flutter development to learn from the basics to advanced topics.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  My Plan for The Future
&lt;/h2&gt;

&lt;p&gt;My plan for the future with Flutter includes several important goals:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Publish packages on pub.dev to showcase my skills and help others.&lt;/li&gt;
&lt;li&gt;Participate in online events and speak about my experiences with Flutter.&lt;/li&gt;
&lt;li&gt;Attend conferences and speak to connect with other Flutter developers and exchange ideas.&lt;/li&gt;
&lt;li&gt;Build a strong network of like-minded individuals who share my passion for Flutter and software development.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The overall objective is to become an active member of the Flutter community, contribute to its growth, and support others in their own goals with the framework.&lt;/p&gt;

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

&lt;p&gt;In conclusion, my journey from a PHP developer to a Flutter developer was a challenging but rewarding experience. I faced many obstacles along the way, but my persistence and eagerness to learn helped me overcome them. I found several resources that helped me along the way, such as online courses, YouTube tutorials, and the Flutter community. Flutter is a rapidly growing framework for app development, and its future looks bright with the continued support from Google and a growing demand for skilled Flutter developers. Whether you are an experienced developer or just starting out, learning Flutter can open up new opportunities and provide a promising future in the world of app development.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Top 5 Reasons Why You Should Choose Flutter App Development?</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Sat, 24 Dec 2022 05:51:48 +0000</pubDate>
      <link>https://dev.to/yourmdsarfaraj/top-5-reasons-why-you-should-choose-flutter-app-development-5011</link>
      <guid>https://dev.to/yourmdsarfaraj/top-5-reasons-why-you-should-choose-flutter-app-development-5011</guid>
      <description>&lt;p&gt;Hello guys, today I am going to discuss the top 5 reasons why we should choose &lt;strong&gt;Flutter app development&lt;/strong&gt;. By the end of the blog, you will get to know what the key benefits Flutter is giving. So before going to make any delay let’s start.&lt;/p&gt;

&lt;p&gt;As we all know, Flutter is booming in the market, and everyone is talking about it, but now the question is,&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Flutter?
&lt;/h2&gt;

&lt;p&gt;Flutter is an open-source mobile SDK (Software Development Kit) created by Google to build native applications for android, iOS, web, desktop, and embedded devices from a single codebase.&lt;/p&gt;

&lt;p&gt;Flutter was announced at the Dart Developer Summit in 2015. At first, it was called "Sky". Flutter alpha version (0.0.6) was released in 2017. Google launched the second preview of Flutter in September 2018.&lt;/p&gt;

&lt;p&gt;Google announced the first stable version on 5th December 2018. Before Flutter was released as a stable version, it gained some popularity.&lt;/p&gt;

&lt;p&gt;Some key points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is developed by Google.&lt;/li&gt;
&lt;li&gt;It uses a single codebase.&lt;/li&gt;
&lt;li&gt;The Flutter framework supports cross-platform development as well as web and desktop apps&lt;/li&gt;
&lt;li&gt;While other platforms can only achieve a maximum of 60 frames per second, Flutter can achieve 120 frames per second.&lt;/li&gt;
&lt;li&gt;It is written in C, C++, and Dart.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is a video that will help you better understand,&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/I9ceqw5Ny-4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Are The Top 5 Reasons To Choose Flutter?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Performance &lt;/li&gt;
&lt;li&gt;Design&lt;/li&gt;
&lt;li&gt;Productivity &lt;/li&gt;
&lt;li&gt;World top companies are using Flutter&lt;/li&gt;
&lt;li&gt;Rapidly growing community &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Read more:&lt;/strong&gt; &lt;a href="https://absyz.com/top-5-reasons-why-you-should-choose-flutter-app-development/" rel="noopener noreferrer"&gt;https://absyz.com/top-5-reasons-why-you-should-choose-flutter-app-development/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Flutter interview questions &amp; answers part - 1</title>
      <dc:creator>MD Sarfaraj</dc:creator>
      <pubDate>Sat, 10 Sep 2022 10:39:44 +0000</pubDate>
      <link>https://dev.to/playfulprogramming/flutter-interview-questions-answers-part-1-5alp</link>
      <guid>https://dev.to/playfulprogramming/flutter-interview-questions-answers-part-1-5alp</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this article, I am going to talk about 10 Flutter interview questions and answers. I will be writing a series of articles on this topic. Let's get started before we make any deals.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What is Flutter?
&lt;/h2&gt;

&lt;p&gt;Flutter is a cross-platform development toolkit developed by Google that enables you to build native applications for multiple platforms with a single codebase and achieve great UI quickly.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/I9ceqw5Ny-4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What is Dart?
&lt;/h2&gt;

&lt;p&gt;Dart is an open-source general-purpose programming language. It was developed by Google in 2011 and later approved as a standard by ECMA. Dart compiles the source code similarly to other programming languages like JavaScript, but the standalone Dart SDK is shipped with a Dart VM (Virtual Machine).&lt;/p&gt;

&lt;h2&gt;
  
  
  3. What are the types of widgets in Flutter?
&lt;/h2&gt;

&lt;p&gt;Basically, there are two types of widgets,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;StatefullWidget &lt;/li&gt;
&lt;li&gt;StatelessWidget&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. What is the difference between StatefulWidget and StatelessWidget?
&lt;/h2&gt;

&lt;p&gt;A StatefulWidget holds the state of widgets and can be rebuilt when the state changes. While the app is running, you can change a widget's state multiple times by calling setState(). &lt;/p&gt;

&lt;p&gt;A StatelessWidget, on the other hand, cannot change its state during the application's runtime, so you use it when the widget won't change.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What is the difference between hot reload and hot restart?
&lt;/h2&gt;

&lt;p&gt;Hot reload simply loads your code changes into the VM (Virtual Machine) and rebuilds the widget tree with the current app states. It does not execute the main() and initState() methods again.&lt;/p&gt;

&lt;p&gt;Hot restart loads your code changes into the VM and restarts the flutter app from the main() method. It lost the previous app state and created a new app state after restarting from the main() method.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. What is the difference between runApp() and main()?
&lt;/h2&gt;

&lt;p&gt;In Flutter, the main() function is used to start the program. Without it, you can't write any programs.&lt;/p&gt;

&lt;p&gt;And the runApp() function is used to return the widgets that are connected to the screen as the root of the widget tree to be rendered on the screen. &lt;/p&gt;

&lt;h2&gt;
  
  
  7. Tell me the names of apps built on Flutter.
&lt;/h2&gt;

&lt;p&gt;The world's most valuable and top companies are using Flutter, The following are some of the most popular apps built on Flutter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Pay&lt;/li&gt;
&lt;li&gt;Google Ads&lt;/li&gt;
&lt;li&gt;Dream 11&lt;/li&gt;
&lt;li&gt;Zerodha &lt;/li&gt;
&lt;li&gt;Reflectly , etc&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. What is the use of Mixins?
&lt;/h2&gt;

&lt;p&gt;Dart does not support multiple inheritances, but Maxins gives us the ability to achieve multiple inheritances. To put it simply, mixins are classes that allow us to borrow methods and variables without extending the class. Dart uses a keyword called &lt;code&gt;with&lt;/code&gt;for this purpose.&lt;/p&gt;

&lt;p&gt;For example,&lt;br&gt;
We have a Car class and we want to access Brand and Model both clasess methods in Car class at this situation mixins give us the opportunity to achieve this using the keyword &lt;code&gt;with&lt;/code&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%2F6v2ncxhhxycpfkfhfmbg.jpg" 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%2F6v2ncxhhxycpfkfhfmbg.jpg" alt="Mixins class diagram" width="800" height="732"&gt;&lt;/a&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="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Brand&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;getBrand&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="kd"&gt;required&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;carBrand&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;"Brand name : &lt;/span&gt;&lt;span class="si"&gt;$carBrand&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="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Model&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;getModel&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="kd"&gt;required&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;carModel&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;"Model : &lt;/span&gt;&lt;span class="si"&gt;$carModel&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="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Car&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;Brand&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Model&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;getCarDetails&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="kd"&gt;required&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;carBrand&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;required&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;carModel&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;"Hey, here is my car details"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;getBrand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;carBrand:&lt;/span&gt; &lt;span class="n"&gt;carBrand&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;getModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;carModel:&lt;/span&gt; &lt;span class="n"&gt;carModel&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="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Car&lt;/span&gt; &lt;span class="n"&gt;car&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Car&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;car&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getCarDetails&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;carBrand:&lt;/span&gt; &lt;span class="s"&gt;'Tex'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;carModel:&lt;/span&gt; &lt;span class="s"&gt;'1976 Cadillac Coupe DeVille'&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;h2&gt;
  
  
  9. What is the use of the pubspec.yaml file in Flutter?
&lt;/h2&gt;

&lt;p&gt;In your Flutter project, the pubspec.yaml defines the dependencies. It is written in the YAML language. The pubspec.yaml file contains a number of fields, including the name, description, version, dependencies, environment, assets, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. What is the lifecycle of StatefullWidet?
&lt;/h2&gt;

&lt;p&gt;A stateful widget has the following lifecycle stages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;createState()&lt;/strong&gt;&lt;br&gt;
Every StatefulWidget calls createState() as soon as it is built, so this override must be present.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;initState()&lt;/strong&gt;&lt;br&gt;
This is the first method called after a Widget is created.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;didChangeDependencies()&lt;/strong&gt;&lt;br&gt;
This method is invoked when the widget is constructed for the first time after initState()&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;build()&lt;/strong&gt; &lt;br&gt;
It is called immediately after didChangeDependencies(). It is called every time the UI needs to be rendered and renders all the GUI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;didUpdateWidget()&lt;/strong&gt;&lt;br&gt;
This method will be called as soon as a change is made to a parent widget that requires redrawing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;deactivate()&lt;/strong&gt;&lt;br&gt;
This function is called when an object is removed from the tree. It is called before disposing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;dispose()&lt;/strong&gt;&lt;br&gt;
This method is called when an object is permanently removed from the tree.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fz9yiz8vk6xgwmevyyxhv.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%2Fz9yiz8vk6xgwmevyyxhv.jpeg" alt="StatefulWidget Diagram" width="800" height="1130"&gt;&lt;/a&gt;Image by &lt;a href="https://jelenajjovanoski.medium.com/" rel="noopener noreferrer"&gt;Jelena Jovanoski&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;In this article, we discussed 10 Flutter interview questions and answers. Stay tuned for the next article discussing more interview questions and answers.&lt;/p&gt;

&lt;p&gt;I hope you liked this article.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>interview</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
