<?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"><channel><title><![CDATA[Kishansinh]]></title><description><![CDATA[Kishansinh]]></description><link>https://blog.kishansinh.com</link><generator>RSS for Node</generator><lastBuildDate>Thu, 04 Jun 2026 23:57:45 GMT</lastBuildDate><atom:link href="https://blog.kishansinh.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to upgrade the Flutter project]]></title><description><![CDATA[I'm sharing my experience when I upgraded my existing application to the latest Flutter SDK version.
This is a practice that I suggest to every Flutter developer who wants to upgrade his existing application to the latest version of Flutter SDK.
(Opt...]]></description><link>https://blog.kishansinh.com/how-to-upgrade-the-flutter-project</link><guid isPermaLink="true">https://blog.kishansinh.com/how-to-upgrade-the-flutter-project</guid><category><![CDATA[Flutter]]></category><category><![CDATA[upgrade]]></category><category><![CDATA[Applications]]></category><dc:creator><![CDATA[Kishansinh Parmar]]></dc:creator><pubDate>Sat, 16 Sep 2023 16:58:57 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1694883750306/0101765a-70e4-4c20-bfca-e7b2872b41ba.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I'm sharing my experience when I upgraded my existing application to the latest Flutter SDK version.</p>
<p>This is a practice that I suggest to every Flutter developer who wants to upgrade his existing application to the latest version of Flutter SDK.</p>
<p>(Optional) -&gt; Create a new instance/user account to your existing Mac/windows system to not affect your current project settings and configuration. Because we can't take risk for existing project. I do the same on my MacBook, creating a new user login and configuring everything.</p>
<p>Now open a terminal and come to your project path. (c/path/to/your/project)</p>
<ol>
<li><p>run 'flutter upgrade'</p>
</li>
<li><p>Update project dart version</p>
<pre><code class="lang-plaintext">   sdk: '&gt;=3.1.0 &lt;4.0.0'
</code></pre>
</li>
<li><p>Run 'flutter pub get'</p>
</li>
<li><p>Now let's update all the dependencies via the following command</p>
<pre><code class="lang-plaintext"> flutter pub outdated
</code></pre>
<p> 'flutter pub outdated' -&gt; This command can help us to see all the possible versions.</p>
</li>
<li><p>Now once we have checked and reviewed run the below commands</p>
</li>
<li><pre><code class="lang-plaintext"> flutter pub upgrade --major-versions
 flutter clean
 flutter pub get
</code></pre>
</li>
<li><p>We can use 'dart fix' and 'dart migrate' while updating the dart version and error fix. Note 'dart analyse' also helps.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Define Your Role | Lead Flutter Developer]]></title><description><![CDATA[Introduction
Hello developers... As you know I'm Kishansinh Parmar(You can call me Kishan = key+sun) a lead flutter developer at ketto.org. I built an application for Ketto's donors to donate more and help needy people.
Many developers and connection...]]></description><link>https://blog.kishansinh.com/define-your-role-lead-flutter-developer</link><guid isPermaLink="true">https://blog.kishansinh.com/define-your-role-lead-flutter-developer</guid><category><![CDATA[Developer]]></category><category><![CDATA[Application Development]]></category><category><![CDATA[software development]]></category><dc:creator><![CDATA[Kishansinh Parmar]]></dc:creator><pubDate>Fri, 08 Sep 2023 11:13:18 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1694171463189/6c25f682-170b-41c2-961b-98e678aa2ba3.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction">Introduction</h3>
<p>Hello developers... As you know I'm Kishansinh Parmar(You can call me Kishan = key+sun) a lead flutter developer at <a target="_blank" href="https://ketto.org">ketto.org</a>. I built an application for Ketto's donors to donate more and help needy people.</p>
<p>Many developers and connection community friends are asking "Hey Kishan what are you doing and how are you maintaining the application as a lead flutter developer not by just writing the code."</p>
<blockquote>
<p>"Hey Kishan what are you doing and how are you maintaining the application as a lead flutter developer not by just writing the code."</p>
</blockquote>
<h3 id="heading-so-today-ill-try-to-explain-my-role-and-responsibility-to-understand-well">So today I'll try to explain my role and responsibility to understand well.</h3>
<p>As a lead flutter developer or manager of applications, I'm responsible for overseeing the entire lifecycle of an application, from its development to its release and beyond. This includes managing the development team, coordinating with stakeholders, creating and sticking to a development timeline, and ensuring that the final product meets the needs of its users.</p>
<p>In addition, I'm responsible for managing the budget for the project, as well as allocating resources appropriately.</p>
<p>a lead developer should also be able to anticipate potential issues and risks that may arise during the development process and take steps to mitigate them. Additionally, they should be able to work closely with marketing and sales teams to ensure that the app is properly promoted and reaches its intended audience. Finally, a lead developer should continuously gather feedback from users and stakeholders to ensure that the app is meeting their needs and to identify areas for improvement.</p>
<h3 id="heading-this-was-a-brief-about-the-overall-responsibility-that-ive-to-maintain-and-drive-smoothly-now-let-me-try-to-explain-in-a-developer-way">This was a brief about the overall responsibility that I've to maintain and drive smoothly. Now let me try to explain in a developer way...</h3>
<blockquote>
<p>entire lifecycle of an application, from its development to its release and beyond</p>
</blockquote>
<ul>
<li><p>Okay so let's assume we have 3-4 tasks in the current sprint all the tasks are different to vice versa. First, we groom together with product managers and the internal tech team to understand the requirements and outcomes for the end users. Then we add the estimation of the tasks and start development on the first day of the sprint.</p>
</li>
<li><p>Now every day on morning standup we update the team with the following top 3 questions. These questions are relevant for all the tech team whether they are developers or QA's.</p>
<ol>
<li><p>What did you do yesterday?</p>
</li>
<li><p>What are going to do today?</p>
</li>
<li><p>Is there any blocker or not?</p>
</li>
<li><p>Or is there any update to the team?</p>
</li>
</ol>
</li>
<li><p>Once we are done with the development, the developer will move the task to testing, so QA will test once if there are no BUGS based on requirements then the task will move to the next stage where the product manager needs to check the quality and mark <em>READY FOR LIVE</em>.</p>
</li>
<li><p>Now once the sprint is about to close or tasks are <em>READY FOR LIVE</em> I've to merge and check the code quality based on internal code quality rules.</p>
</li>
<li><p>We will publish first to <em>BETA USERS</em> only for the next 2-3 days. If all looks good we will roll it out for public users. (Here we are following the 20-50-100 rule where the first 20% of users will get the update and then so on for 50% and 100% of users)</p>
</li>
</ul>
<blockquote>
<p>allocating resources appropriately</p>
</blockquote>
<ul>
<li><p>While we were grooming the tasks I had to measure task requirements and distribute them to other developers according to who can do the best for that.</p>
</li>
<li><p>Once all the team developers understand about his task, they can start development</p>
</li>
</ul>
<blockquote>
<p>continuously gather feedback from users and stakeholders to ensure that the app is meeting their needs and to identify areas for improvement</p>
</blockquote>
<ul>
<li><p>So once we roll it out to 100% public users we will see the task feature reports on how it is performing, if there any bugs are coming for that feature, What the user is saying about a new version and so on.</p>
</li>
<li><p>So we try to collect the feedback and take improvement tasks in the sprint or is there any critical issue we take immediately to the current sprint?</p>
</li>
</ul>
<h3 id="heading-what-tools-and-processes-do-i-follow-for-development-to-release-and-its-beyond">What tools and processes do I follow for development to release and it's beyond?</h3>
<ul>
<li><p>Hmm, interesting... I can distribute in the following categories.</p>
</li>
<li><p>Sprint planning</p>
<ul>
<li>ClickUp, Figma, Slack</li>
</ul>
</li>
<li><p>Development tools</p>
<ul>
<li>VSCode, Android studio/XCode</li>
</ul>
</li>
<li><p>Grooming or brainstorming</p>
<ul>
<li><a target="_blank" href="https://www.tldraw.com/">tldraw.com</a>, Notion for basic notes, and GSheet for roughly estimate task hours,</li>
</ul>
</li>
<li><p>Browser</p>
<ul>
<li><a target="_blank" href="https://thebrowser.company/">arc</a>,</li>
</ul>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Understand logging | flutter]]></title><description><![CDATA[Ok, So let's start with simple logging first, Which every developer knew
print()

easy to start by logging in to flutter. Right 😀
Okay now, let's play with more sample log data.

"Hello world!"

"I\'m Kishansinh Parmar"

https://gist.github.com/imki...]]></description><link>https://blog.kishansinh.com/understand-logging-flutter</link><guid isPermaLink="true">https://blog.kishansinh.com/understand-logging-flutter</guid><dc:creator><![CDATA[Kishansinh Parmar]]></dc:creator><pubDate>Mon, 24 Oct 2022 07:15:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1677407381853/e24d1634-4ae8-4dc9-95e6-c6b57f87eb35.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ok, So let's start with simple logging first, Which every developer knew</p>
<p><code>print()</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1677405592194/f05e1ef5-d433-4fd7-88d8-75cbe706331f.png" alt /></p>
<p>easy to start by logging in to flutter. Right 😀</p>
<h3 id="heading-okay-now-lets-play-with-more-sample-log-data">Okay now, let's play with more sample log data.</h3>
<ol>
<li><p>"Hello world!"</p>
</li>
<li><p>"I\'m Kishansinh Parmar"</p>
</li>
<li><div class="gist-block embed-wrapper" data-gist-show-loading="false" data-id="8653ff8054a5f64735e1712aa8329611"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a href="https://gist.github.com/imkishansinh/8653ff8054a5f64735e1712aa8329611" class="embed-card">https://gist.github.com/imkishansinh/8653ff8054a5f64735e1712aa8329611</a></div><p> </p>
</li>
</ol>
<p>The result of the logs</p>
<ol>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1677406335986/5515018c-a864-4cf7-a30e-e74ca7ec3aca.png" alt /></p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1677406348983/c1764f9e-c4ad-4b86-a272-dcc2f5d24cc2.png" alt /></p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1677406367535/8037e5dc-e8cb-428e-a216-5571fda45ce1.png" alt class="image--center mx-auto" /></p>
</li>
</ol>
<p>As you can see that first 2 sample data print everything correctly but what happen with 3rd sample data? It discards some lines from the output, which we aren't expecting right?</p>
<blockquote>
<p>If you output too much at once, then Android sometimes discards some log lines. To avoid this, use <a target="_blank" href="https://api.flutter.dev/flutter/foundation/debugPrint.html"><code>debugPrint()</code></a>, from Flutter’s <code>foundation</code> library. This is a wrapper around <code>print</code> that throttles the output to a level that avoids being dropped by Android’s kernel.</p>
<p>The other option for application logging is to use the <code>dart:developer</code> <a target="_blank" href="https://api.flutter.dev/flutter/dart-developer/log.html"><code>log()</code></a> function. This allows you to include a bit more granularity and information in the logging output.</p>
</blockquote>
<p>Now let's print longer string outputs using the log() function. It works ✌🏻</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1677406867303/bc7cf6a5-a1c1-496a-b82b-2de5ba5268c2.png" alt class="image--center mx-auto" /></p>
<p>So as we experienced the developer log() function makes sense for logging in to flutter. Nice</p>
<h3 id="heading-but-wait-are-you-looking-for-something-which-is-more-beautiful-for-logging-then-try-this-package-which-helps-you-to-log-better-visible-logs">But, wait are you looking for something which is more beautiful for logging then try this package which helps you to log better visible logs.</h3>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://pub.dev/packages/logger">https://pub.dev/packages/logger</a></div>
<p> </p>
<h3 id="heading-caution-this-package-also-reduces-your-log-lines-if-a-message-is-longer">Caution ⚠️: This package also reduces your log lines if a message is longer.</h3>
<p>So my suggestion is to extend the logger class into your own class and gives your class more power with the developer:log function.</p>
<h3 id="heading-tip-extend-logger-class-to-your-own-class">Tip: Extend Logger class to your own class</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1677407364859/f1951ba3-19b4-4e62-8d9b-c6b9709511ce.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item></channel></rss>