<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by SuryaPrakash on Medium]]></title>
        <description><![CDATA[Stories by SuryaPrakash on Medium]]></description>
        <link>https://medium.com/@TidingsSP?source=rss-b07c4081ca05------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*WWiEi6jPfHrbgFvEv0c9Mg.jpeg</url>
            <title>Stories by SuryaPrakash on Medium</title>
            <link>https://medium.com/@TidingsSP?source=rss-b07c4081ca05------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 24 May 2026 02:25:16 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@TidingsSP/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Understanding the fundamental features offered by GetX]]></title>
            <link>https://medium.com/@TidingsSP/understanding-the-fundamental-features-offered-by-getx-92399f4e15a?source=rss-b07c4081ca05------2</link>
            <guid isPermaLink="false">https://medium.com/p/92399f4e15a</guid>
            <category><![CDATA[flutter]]></category>
            <category><![CDATA[route-management]]></category>
            <category><![CDATA[dependency-management]]></category>
            <category><![CDATA[dependency-injection]]></category>
            <category><![CDATA[state-management]]></category>
            <dc:creator><![CDATA[SuryaPrakash]]></dc:creator>
            <pubDate>Mon, 03 Oct 2022 14:02:07 GMT</pubDate>
            <atom:updated>2022-10-03T17:46:21.380Z</atom:updated>
            <content:encoded><![CDATA[<h4>Flutter GetX</h4><h4>GetX makes it simple to construct🧱 dependency injection, route management, and state management.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y-1hkCFVfMJ8ghWjruQR3Q.jpeg" /><figcaption>GetX makes it easier to 🧱build dependency injection, state management, and route management with a lot less code!!…</figcaption></figure><h3>Contents:</h3><ul><li><a href="#3d8d"><strong>GetX Overview</strong></a></li><li><a href="#7ae4"><strong>State Manager</strong></a></li><li><strong>1)</strong> <a href="#bbc2"><em>Reactive State Manager</em></a></li><li><strong>2)</strong> <a href="#cd56"><em>Simple State Manager</em></a></li><li><a href="#db61"><strong>Route Manager</strong></a></li><li><a href="#62cd"><strong>Dependencies Manager</strong></a></li></ul><h3>GetX Overview:</h3><p>A fast, light weight and powerful framework offers the easy 🔗route management, high-performance 🎇state management and intelligent 💉dependency injection.</p><h3>State Manager:</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/128/1*O60ANVIqcwtr76hhoW9rQw.png" /></figure><ul><li>An app’s state is anything that resides in memory💾 while the app is running. This comprises the app’s assets, as well as all of the variables that the Flutter framework stores about the UI, such as animation state, textures, fonts, and so on, which may change🔧 or be updated⬆ during the course of the app’s lifecycle.</li><li>GetX provides simple and reactive <strong>state manager to</strong> <strong>update⬆ widgets on upon changes on the state</strong> in the applications.</li><li>GetX removes StatefulWidget, which implies that the state of a widget can be modified even within StatelessWidget.</li></ul><figure><a href="https://docs.flutter.dev/development/data-and-backend/state-mgmt/intro"><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kC8xgTsDVSoZNt5pDm9-Dw.gif" /></a><figcaption>Global App State Management</figcaption></figure><h3>🧪Reactive State Manager:</h3><ul><li>Reactive state management is the ideal method for updating⬆ the widget automatically depending on changes in the represented data👨‍💻.</li><li>GetX provide extremely simple way to implement reactive state management in our application.</li></ul><h3>There are 3 ways to turn a variable observable:-</h3><blockquote>The variable which ever need to be observed for changes should be declared as reactive variable.</blockquote><h4>1. Declaring a Reactive Variable with .obs():</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/74747199762d07504ea9faf7baabb26b/href">https://medium.com/media/74747199762d07504ea9faf7baabb26b/href</a></iframe><h4>2. Declaring a Reactive Variable with Rx{Type}:</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/34d5c7d0ac23cfb40cde56b7d84da99f/href">https://medium.com/media/34d5c7d0ac23cfb40cde56b7d84da99f/href</a></iframe><h4>3. Declaring a Reactive Variable using Dart Generics Rx&lt;Type&gt;:</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/34f48505f0062d2fccda082b1d9b2f0f/href">https://medium.com/media/34f48505f0062d2fccda082b1d9b2f0f/href</a></iframe><h3>Update⬆ the widget upon changes in the reactive variable:</h3><blockquote>Put the widget inside Obx() that has to be changed later on an event.</blockquote><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/2df3b0d5d73b8e17cf2533699ad82641/href">https://medium.com/media/2df3b0d5d73b8e17cf2533699ad82641/href</a></iframe><h3>✨Simple State Manager:</h3><blockquote>GetX has a very light and simple state manager that does not require ChangeNotifier and will not create memory issues in large applications.</blockquote><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/6fd683c67d9fb9ae0e0f38ec36796e6e/href">https://medium.com/media/6fd683c67d9fb9ae0e0f38ec36796e6e/href</a></iframe><blockquote>If controller exist in many other places use <strong>Get.find&lt;Controller&gt;()</strong></blockquote><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/d12eb2456dc7c60f0b29cc51bf72170a/href">https://medium.com/media/d12eb2456dc7c60f0b29cc51bf72170a/href</a></iframe><h4>Controller Lifecycle:</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/64/1*19o5CSrcYI7YRCOAUs2xqA.png" /></figure><ul><li>onInit() — Where it is created.</li><li>onClose() — where it is closed to make any changes in preparation for the delete method</li><li>deleted: It is removed the controller from the memory.</li></ul><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/1ef9cfb99b121821e60c1246755cf325/href">https://medium.com/media/1ef9cfb99b121821e60c1246755cf325/href</a></iframe><h4>Unique 🆔:</h4><blockquote>You may use GetBuilder to refine a widget’s update control by assigning them unique IDs.</blockquote><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8dfe285f76c61ad77c3cd09f05e41719/href">https://medium.com/media/8dfe285f76c61ad77c3cd09f05e41719/href</a></iframe><h3>Route Manager:</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/80/1*OuGCdjiPWKMzzlj8YbyS1A.png" /></figure><blockquote>The route manager facilitates navigating between screens in an application.</blockquote><h4>Navigation without named routes:</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/7d1bf8bb300647609a56f687ae863bfe/href">https://medium.com/media/7d1bf8bb300647609a56f687ae863bfe/href</a></iframe><h4>Navigation with named routes:</h4><p>To define routes, use GetMaterialApp:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f0056f1cf04e1bb9198d44ba221e035a/href">https://medium.com/media/f0056f1cf04e1bb9198d44ba221e035a/href</a></iframe><p>Navigate named to route:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/5b773d39a71445b3416bc96e4599c308/href">https://medium.com/media/5b773d39a71445b3416bc96e4599c308/href</a></iframe><h3>Dependencies Manager:</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/48/1*rCRi2I_OOhqEanNGcUSGHg.png" /></figure><blockquote>Get offers a straightforward and strong dependency management that allows you to obtain the same class as your Bloc or Controller with only one line of code, no Provider context, and no inheritedWidget.</blockquote><h4>Get.put:</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8061bba57b19e7cfe1e40aac79be38ac/href">https://medium.com/media/8061bba57b19e7cfe1e40aac79be38ac/href</a></iframe><h4>Get.lazyPut:</h4><blockquote>The <strong>lazyLoad instantiate the dependency and allocate memory💾 only when it is in use</strong>. Very useful for computational expensive classes</blockquote><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/7937af0aef1ff903a42228647952a750/href">https://medium.com/media/7937af0aef1ff903a42228647952a750/href</a></iframe><h4>Get.putAsync:</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8b96181452fbd0a4e2f4c20d805f20f2/href">https://medium.com/media/8b96181452fbd0a4e2f4c20d805f20f2/href</a></iframe><h4>Get.create:</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/221d03d2f7f12a4c84ab81064672e344/href">https://medium.com/media/221d03d2f7f12a4c84ab81064672e344/href</a></iframe><h3>Attributes and References:</h3><p>Cover Image: <a href="https://www.freepik.com/free-vector/technical-support-programming-coding_11669310.htm#query=easy%20app%20development&amp;position=2&amp;from_view=search">Image by vectorjuice on Freepik</a></p><p>GetX Documentation: <a href="https://chornthorn.github.io/getx-docs/">Flutter GetX Fast, Stable, Extra-light and Powerful Flutter Framework!</a></p><p>Reactive State manager GIF: <a href="https://docs.flutter.dev/development/data-and-backend/state-mgmt/intro">Flutter Official Doc</a>.</p><p>Video: <a href="https://youtube.com/playlist?list=PLCaS22Sjc8YR32XmudgmVqs49t-eKKr9t">A best YouTube playlist to learn GetX</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=92399f4e15a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Flutter Responsive Widget Development Using a Modular Approach!]]></title>
            <link>https://medium.com/@TidingsSP/flutter-responsive-widget-development-using-a-modular-approach-bf8d63838c76?source=rss-b07c4081ca05------2</link>
            <guid isPermaLink="false">https://medium.com/p/bf8d63838c76</guid>
            <category><![CDATA[flutter-widget]]></category>
            <category><![CDATA[flutter-app-development]]></category>
            <category><![CDATA[responsive-design]]></category>
            <category><![CDATA[flutter]]></category>
            <category><![CDATA[flutter-ui]]></category>
            <dc:creator><![CDATA[SuryaPrakash]]></dc:creator>
            <pubDate>Sat, 06 Aug 2022 08:36:37 GMT</pubDate>
            <atom:updated>2022-08-07T04:42:44.188Z</atom:updated>
            <content:encoded><![CDATA[<h4><a href="https://github.com/Tidings-SP/Flutter-Projects/tree/main/Building-Responsive-Widget">Flutter Tips</a></h4><h4>This responsive widget is simply reusable♻ across all projects!…</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0uEgS4v77kBN6P5uGU46NA.jpeg" /><figcaption>Utilize responsive widget to adapt UI to any screens!</figcaption></figure><h3>Overview:</h3><p>A graphic user interface (GUI) design strategy called responsive design is used to provide content that dynamically adapts to different screen sizes which make our application to use conveniently across multiple platform.</p><h4>Steps involved in creating responsive widget:</h4><ul><li>Determine the current screen📱 size.</li><li>Update⬆ the widget with respect to the size.</li></ul><h4>Get the current screen resolution:</h4><p>In flutter, the “MediaQuery”💻 is used to obtain the current screen size📱; the code snippet👨‍💻 to access the screen size is shown below.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/f3da3d2b3d5732b9a2a1cc3515aacbfc/href">https://medium.com/media/f3da3d2b3d5732b9a2a1cc3515aacbfc/href</a></iframe><h4>Update the widget:</h4><ul><li>The above code snippet yields a vector object from we can obtain the screen width in order to replace or resize the widget.</li><li>In this demo application, the widget is switched between large and small screens, and when the screen size is shrunk to its threshold size, a hamburger🍔 menu is replaced in the 🔝top navigation bar.</li></ul><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8d938d1eb6bc035ca872bb2a804c1b53/href">https://medium.com/media/8d938d1eb6bc035ca872bb2a804c1b53/href</a></iframe><h3>Responsive Widget:</h3><p><em>The Responsive Widget can be passed with a maximum of three different Layouts for three different screen sizes as a parameter. Using media query in flutter, we can fetch screen size and custom functions were created to check the screen size anywhere in the code, and inside layout builder, we return the appropriate layout in terms of screen size.</em></p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/9c5850f3788691f4c4757dc562806f04/href">https://medium.com/media/9c5850f3788691f4c4757dc562806f04/href</a></iframe><blockquote>Here we can have multiple custom screen size depends upon our needs!</blockquote><h3>🖋 Design distinct layouts for different screen sizes:</h3><p>I built two unique example layouts for two different screen sizes, which can be simply swapped using the responsive widget mentioned above.</p><p><a href="https://github.com/Tidings-SP/Flutter-Projects/tree/main/Building-Responsive-Widget/widgets"><em>Check my GitHub repo for those demo layouts.</em></a></p><h3>🧱 Assemble everything created in main.dart</h3><p><em>I’ve passed LargeScreen and SmallScreen here; you may pass another layout for medium screen size in the same way the other two are. You may build on top of the responsive widget to pass extra layouts as needed.</em></p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/1ad8857b4bdb5a7ceff3be82f8be9901/href">https://medium.com/media/1ad8857b4bdb5a7ceff3be82f8be9901/href</a></iframe><h3>Some assistance feature to alter asset size dynamically in relation to screen size:</h3><p><em>Here is an example use case of the custom function included in a responsive widget: a hamburger menu is replace with the top navigation bar when the screen size is below a certain threshold.</em></p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/a4a0b5c1b3e90dcea5ad517f46cbecad/href">https://medium.com/media/a4a0b5c1b3e90dcea5ad517f46cbecad/href</a></iframe><h3>Finally, we reached this</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F737231298%3Fh%3D15053ce150%26app_id%3D122963&amp;dntp=1&amp;display_name=Vimeo&amp;url=https%3A%2F%2Fvimeo.com%2F737231298&amp;image=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1483492728-37f67661b6be0ec943d27fe377417c6e8b995b90c2ce8cac22dfc4d96064f717-d_1280&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/4fe5ba535c6ca6d50bd40cb409707fe8/href">https://medium.com/media/4fe5ba535c6ca6d50bd40cb409707fe8/href</a></iframe><blockquote><a href="https://github.com/Tidings-SP/Flutter-Projects/tree/main/Building-Responsive-Widget">Here is the GitHub reference to utilize the responsive widget on your project!!</a></blockquote><h3><strong>Attributes and References:</strong></h3><p>Cover Image: <a href="https://www.freepik.com/vectors/concept-illustration">Concept illustration vector created by storyset — www.freepik.com</a></p><p>Flutter documentation: <a href="https://docs.flutter.dev/development/ui/layout/adaptive-responsive#:~:text=Flutter%20allows%20you%20to%20create,you%20get%20a%20BoxConstraints%20object.">Creating responsive and adaptive apps</a></p><p><a href="https://youtu.be/A3WrA4zAaPw">A Quick overview about media query on YouTube!</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bf8d63838c76" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>